MaxCompute menyediakan fungsi string untuk memotong, menggabungkan, mengonversi, membandingkan, dan mencari data string dalam tabel.
SQL MaxCompute mendukung fungsi string berikut.
|
Function |
Description |
|
Mengembalikan kode ASCII dari karakter pertama dalam sebuah string. |
|
|
Menghitung jumlah karakter dari string A yang muncul dalam string B. |
|
|
Mengonversi kode ASCII menjadi karakter. |
|
|
Menggabungkan string. |
|
|
Menggabungkan semua string input menggunakan delimiter yang ditentukan. |
|
|
Mendekode string menggunakan format encoding yang ditentukan. |
|
|
Mengencode string menggunakan format encoding yang ditentukan. |
|
|
Menemukan posisi string tertentu dalam string yang dipisahkan koma. |
|
|
Mengonversi angka menjadi string dalam format yang ditentukan. |
|
|
Mengonversi data biner dalam format encoding tertentu menjadi string UTF-8. |
|
|
Mengembalikan data tipe ARRAY, MAP, atau STRUCT berdasarkan string JSON dan format output yang diberikan. |
|
|
Mengekstrak string tertentu dari string JSON standar menggunakan metode yang ditentukan. |
|
|
Mengonversi string ke bentuk title case di mana setiap kata dimulai dengan huruf kapital diikuti huruf kecil, dipisahkan spasi. |
|
|
Menemukan posisi string A dalam string B. |
|
|
Menentukan apakah string dapat dikonversi dari set karakter A ke set karakter B. |
|
|
Mengekstrak string yang sesuai dengan serangkaian kunci input dari string JSON standar. |
|
|
Memisahkan string menjadi pasangan kunci-nilai, memisahkan pasangan tersebut, dan mengembalikan nilai yang sesuai dengan kunci tertentu. |
|
|
Memisahkan string menjadi beberapa pasangan kunci-nilai, memisahkan pasangan tersebut, dan mengembalikan nilai yang sesuai dengan beberapa kunci tertentu. |
|
|
Menghitung panjang string. |
|
|
Menghitung panjang byte dari string. |
|
|
Menemukan posisi substring tertentu dalam string. |
|
|
Menambahkan padding di sebelah kiri string hingga mencapai panjang tertentu. |
|
|
Menghapus karakter dari ujung kiri string. |
|
|
Mengembalikan nilai hash yang dihitung dari ekspresi string. |
|
|
Menghitung hash MD5 dari string. |
|
|
Mengurai URL dan mengembalikan informasi tentang bagian tertentu. |
|
|
Mengurai URL dan mengembalikan informasi tentang beberapa bagian. |
|
|
Menghitung substring yang cocok dengan pola tertentu mulai dari posisi tertentu. |
|
|
Memisahkan string menjadi grup berdasarkan pola tertentu dan mengembalikan string dari grup tertentu. |
|
|
Menemukan semua substring yang cocok dengan pola ekspresi reguler dalam string dan mengembalikannya sebagai array. |
|
|
Mengembalikan posisi awal atau akhir substring yang cocok dengan pola tertentu untuk kemunculan tertentu mulai dari posisi tertentu. |
|
|
Mengganti substring yang cocok dengan pola tertentu untuk kemunculan tertentu dengan string lain. |
|
|
Mengembalikan substring yang cocok dengan pola tertentu untuk kemunculan tertentu mulai dari posisi tertentu. |
|
|
Mengembalikan string yang diulang sejumlah kali tertentu. |
|
|
Mengganti substring yang cocok dengan string tertentu dengan string lain. |
|
|
Mengembalikan kebalikan dari string. |
|
|
Menambahkan padding di sebelah kanan string hingga mencapai panjang tertentu. |
|
|
Menghapus karakter dari ujung kanan string. |
|
|
Mengonversi string standar menjadi string SOUNDEX. |
|
|
Menghasilkan string yang terdiri atas spasi. |
|
|
Memisahkan string menggunakan delimiter dan mengembalikan array. |
|
|
Memisahkan string menggunakan delimiter dan mengembalikan bagian tertentu. |
|
|
Mengembalikan substring dari string bertipe STRING mulai dari posisi tertentu dengan panjang tertentu. |
|
|
Mengembalikan substring dari string bertipe STRING atau BINARY mulai dari posisi tertentu dengan panjang tertentu. |
|
|
Mengekstrak substring sebelum atau sesudah kemunculan ke-n dari delimiter. |
|
|
Mengonversi nilai BOOLEAN, BIGINT, DECIMAL, atau DOUBLE ke representasi STRING-nya. |
|
|
Mengonversi tipe kompleks tertentu menjadi string JSON. |
|
|
Mengonversi huruf kapital bahasa Inggris dalam string menjadi huruf kecil. |
|
|
Mengonversi huruf kecil bahasa Inggris dalam string menjadi huruf kapital. |
|
|
Mengganti semua kemunculan string A dalam string B dengan string C. |
|
|
Menghapus karakter dari kedua ujung string. |
|
|
Mengonversi string dari format |
|
|
Mengencode string dalam format |
Batasan
Fungsi berikut hanya mendukung karakter bahasa Inggris:
-
TRIM/RTRIM/LTRIM: Parameter trimChars hanya mendukung karakter bahasa Inggris.
-
REVERSE: Hanya mendukung karakter bahasa Inggris dalam mode Hive.
-
SOUNDEX: Hanya mengonversi karakter bahasa Inggris.
-
TOLOWER: Mengonversi huruf kapital bahasa Inggris dalam string menjadi huruf kecil.
-
TOUPPER: Mengonversi huruf kecil bahasa Inggris dalam string menjadi huruf kapital.
-
INITCAP: Mengonversi huruf pertama bahasa Inggris setiap kata menjadi huruf kapital dan sisanya menjadi huruf kecil.
ASCII
-
Sintaksis
bigint ascii(string <str>) -
Deskripsi
Mengembalikan kode ASCII dari karakter pertama dalam string str.
-
Parameter
str: wajib. Tipe STRING. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke tipe STRING sebelum perhitungan.
-
Nilai kembali
Mengembalikan nilai bertipe BIGINT. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikembalikan error.
-
Jika str bernilai NULL, akan dikembalikan NULL.
-
-
Contoh
-
Contoh 1: Mengembalikan kode ASCII dari karakter pertama dalam string
abcde. Pernyataan contoh:-- Mengembalikan 97. select ascii('abcde'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select ascii(null);
-
CHAR_MATCHCOUNT
-
Sintaksis
bigint char_matchcount(string <str1>, string <str2>) -
Deskripsi
Menghitung berapa banyak karakter dalam str1 yang muncul dalam str2.
-
Parameter
str1 dan str2: wajib. Tipe STRING. Kedua string harus merupakan string UTF-8 yang valid. Jika ditemukan karakter tidak valid (tidak di-encode Unicode) selama perbandingan, akan dikembalikan nilai negatif.
-
Nilai kembali
Mengembalikan nilai bertipe BIGINT. Jika str1 atau str2 bernilai NULL, akan dikembalikan NULL.
-
Contoh
-
Contoh 1: Hitung berapa banyak karakter dari string
aabcyang muncul dalamabcde. Pernyataan contoh:-- Mengembalikan 4. select char_matchcount('aabc','abcde'); -
Contoh 2: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select char_matchcount(null,'abcde');
-
CHR
-
Sintaksis
string chr(bigint <ascii>) -
Deskripsi
Mengonversi kode ASCII tertentu menjadi karakter.
-
Parameter
ascii: wajib. Nilai ASCII bertipe BIGINT. Rentang nilai valid: 0 hingga 127. Jika input bertipe STRING, DOUBLE, atau DECIMAL, akan dikonversi secara implisit ke tipe BIGINT sebelum perhitungan.
-
Nilai kembali
Mengembalikan nilai bertipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika nilai ascii berada di luar rentang valid, akan dikembalikan error.
-
Jika ascii bukan bertipe BIGINT, STRING, DOUBLE, atau DECIMAL, akan dikembalikan error.
-
Jika ascii bernilai NULL, akan dikembalikan NULL.
-
-
Contoh
-
Contoh 1: Konversi kode ASCII
100menjadi karakter. Pernyataan contoh:-- Mengembalikan d. select chr(100); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select chr(null); -
Contoh 3: Input adalah karakter bertipe STRING. Pernyataan contoh:
--Input dikonversi secara implisit ke tipe BIGINT untuk operasi, yang mengembalikan 'd'. select chr('100');
-
CONCAT
-
Sintaksis
array<T> concat(array<T> <a>, array<T> <b>[,...]) string concat(string <str1>, string <str2>[,...]) -
Deskripsi
-
Array sebagai input: Menggabungkan semua elemen dari beberapa array dan mengembalikan array baru.
-
String sebagai input: Menggabungkan beberapa string dan mengembalikan string baru.
-
-
Parameter
-
a dan b: wajib. Parameter ini menentukan array.
Tdalamarray<T>menentukan tipe data elemen dalam array. Elemen dapat bertipe data apa pun. Elemen dalam Array a dan elemen dalam Array b harus bertipe data yang sama. Elemen null juga terlibat dalam operasi. -
str1 dan str2: wajib. Nilai bertipe STRING. Jika nilai input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit menjadi nilai bertipe STRING sebelum perhitungan. Jika nilai input bertipe data lain, akan dikembalikan error.
-
-
Nilai kembali
-
Nilai bertipe ARRAY dikembalikan. Jika salah satu array input bernilai null, null dikembalikan.
-
Nilai bertipe STRING dikembalikan. Jika tidak ada parameter input yang dikonfigurasi atau parameter input diatur ke null, null dikembalikan.
-
-
Contoh
-
Contoh 1: Gabungkan semua elemen dari
array(10, 20)danarray(20, -20). Pernyataan contoh:-- Nilai kembali adalah [10, 20, 20, -20]. select concat(array(10, 20), array(20, -20)); -
Contoh 2: Salah satu array input berisi elemen null. Pernyataan contoh:
-- Nilai kembali adalah [10, null, 20, -20]. select concat(array(10, null), array(20, -20)); -
Contoh 3: Salah satu array input bernilai null. Pernyataan contoh:
-- Nilai kembali adalah null. select concat(array(10, 20), null); -
Contoh 4: Gabungkan string
aabcdanabcde. Pernyataan contoh:-- Nilai kembali adalah aabcabcde. select concat('aabc','abcde'); -
Contoh 5: Input kosong. Pernyataan contoh:
-- Nilai kembali adalah null. select concat(); -
Contoh 6: Salah satu string input bernilai null. Pernyataan contoh:
-- Nilai kembali adalah null. select concat('aabc', 'abcde', null);
-
CONCAT_WS
-
Sintaksis
string concat_ws(string <separator>, string <str1>, string <str2>[,...]) string concat_ws(string <separator>, array<string> <a>) -
Deskripsi
Mengembalikan string yang dibentuk dengan menggabungkan semua string input atau elemen array menggunakan delimiter yang ditentukan. Fungsi ini merupakan ekstensi di MaxCompute V2.0.
-
Parameter
-
separator: wajib. Delimiter bertipe STRING.
-
str1 dan str2: Harus menentukan minimal dua string. Bertipe STRING. Jika input bertipe BIGINT, DECIMAL, DOUBLE, atau DATETIME, akan dikonversi secara implisit ke tipe STRING sebelum perhitungan.
-
a: wajib. Bertipe ARRAY. Elemen array harus bertipe STRING.
-
-
Nilai kembali
Mengembalikan nilai bertipe STRING atau STRUCT. Nilai kembali mengikuti aturan berikut:
-
Jika str1 atau str2 bukan bertipe STRING, BIGINT, DECIMAL, DOUBLE, atau DATETIME, akan dikembalikan error.
-
Jika tidak ada parameter input yang diberikan atau ada parameter input yang bernilai NULL, akan dikembalikan NULL.
-
-
Contoh
-
Contoh 1: Gabungkan string
namedanhanmeimeimenggunakan:. Pernyataan contoh:-- Mengembalikan name:hanmeimei. select concat_ws(':','name','hanmeimei');-
-
Contoh 2: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select concat_ws(':','avg',null,'34'); -
Contoh 3: Gabungkan elemen dalam array
array('name', 'hanmeimei')menggunakan:. Pernyataan contoh:-- Mengembalikan name:hanmeimei. select concat_ws(':',array('name', 'hanmeimei'));
-
DECODE
-
Sintaksis
STRING DECODE(BINARY <str>, STRING <charset>) -
Deskripsi
Mendekode str menggunakan format yang ditentukan oleh charset.
-
Parameter
Parameter
Required
Description
str
Yes
Bertipe BINARY. String yang akan didekode.
charset
Yes
Bertipe STRING. Format encoding. Nilai valid: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII.
CatatanFormat encoding ISO-8859-1 dan US-ASCII saat ini hanya mendukung karakter bahasa Inggris, bukan karakter Tionghoa.
-
Nilai kembali
Mengembalikan STRING. Jika str atau charset bernilai NULL, akan dikembalikan NULL.
-
Contoh
-
Contoh 1: Encode dan decode string English Sample berdasarkan format UTF-8. Pernyataan contoh:
-- Encode dan decode string.SELECT DECODE(ENCODE("English Sample","UTF-8"), "UTF-8");Mengembalikan:
+-----+| _c0 |+-----+| English Sample |+-----+ -
Contoh 2: Atur salah satu parameter input ke NULL. Pernyataan contoh:
SELECT DECODE(ENCODE("English Sample","UTF-8"), NULL);Mengembalikan:
+-----+| _c0 |+-----+| NULL |+-----+
-
ENCODE
-
Sintaksis
binary encode(string <str>, string <charset>) -
Deskripsi
Mengencode str menggunakan format yang ditentukan oleh charset.
-
Parameter
-
str: wajib. Bertipe STRING. String yang akan di-re-encode.
-
charset: wajib. Bertipe STRING. Format encoding. Nilai valid: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII.
-
-
Nilai kembali
Mengembalikan tipe BINARY. Jika str atau charset bernilai NULL, akan dikembalikan NULL.
-
Contoh
-
Contoh 1: Encode string
abcdalam formatUTF-8. Pernyataan contoh:-- Mengembalikan abc. select encode("abc", "UTF-8"); -
Contoh 2: Encode string
abcdalam formatUTF-16BE. Pernyataan contoh:-- Mengembalikan =00a=00b=00c. select encode("abc", "UTF-16BE"); -
Contoh 3: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select encode("abc", null);
-
FIND_IN_SET
-
Sintaksis
BIGINT FIND_IN_SET(STRING <str1>, STRING <str2>[, STRING <delimiter>]) -
Deskripsi
Menemukan posisi string str1 dalam string str2 yang dipisahkan oleh delimiter, dihitung mulai dari 1.
-
Parameter
Parameter
Required
Description
str1
Yes
Bertipe STRING. String yang dicari.
str2
Yes
Bertipe STRING. String yang dipisahkan oleh delimiter.
delimiter
No
Konstanta STRING. Default adalah koma (
,). Delimiter dapat berupa satu karakter atau string. -
Nilai kembali
Mengembalikan tipe BIGINT. Nilai kembali mengikuti aturan berikut:
-
Jika str2 tidak mengandung str1 atau str1 mengandung delimiter, dikembalikan 0.
-
Jika str1 atau str2 bernilai
NULL, dikembalikanNULL.
-
-
Contoh
-
Contoh 1: Temukan posisi string
abdalam stringabc,hello,ab,c, yang dipisahkan koma (,). Pernyataan contoh:SELECT FIND_IN_SET('ab', 'abc,hello,ab,c') AS pos;Mengembalikan:
+------------+ | pos | +------------+ | 3 | +------------+ -
Contoh 2: Temukan posisi string
hidalam stringabc,hello,ab,cyang dipisahkan koma (,). Pernyataan contoh:SELECT FIND_IN_SET('hi', 'abc,hello,ab,c') AS pos;Mengembalikan:
+------------+ | pos | +------------+ | 0 | +------------+ -
Contoh 3: Temukan posisi string
abdalam string yang dipisahkan garis bawah (_)abc_hello_ab_c. Pernyataan contoh:SELECT FIND_IN_SET('ab', 'abc_hello_ab_c', '_') AS pos;Mengembalikan:
+------------+ | pos | +------------+ | 3 | +------------+ -
Contoh 4: Parameter input
str1ataustr2bernilaiNULL. Pernyataan contoh:SELECT FIND_IN_SET(null, 'abc,hello,ab,c') AS pos;Mengembalikan:
+------------+ | pos | +------------+ | NULL | +------------+
-
FORMAT_NUMBER
-
Sintaksis
STRING FORMAT_NUMBER(DOUBLE|BIGINT|INT|SMALLINT|TINYINT|FLOAT|DECIMAL|STRING <expr1>, INT <expr2>) -
Deskripsi
Mengonversi expr1 menjadi string yang diformat sesuai dengan expr2.
-
Parameter
-
expr1: wajib. Nilai bertipe FLOAT, DOUBLE, atau DECIMAL. Parameter ini menentukan ekspresi yang ingin Anda format.
-
expr2: wajib. Nilai bertipe INT. Nilai valid: 0 hingga 340. Parameter ini menentukan jumlah tempat desimal yang ingin Anda pertahankan. Parameter ini juga dapat dinyatakan dalam format seperti
#,###,###.##. Jumlah tempat desimal yang dikembalikan bervariasi berdasarkan nilai parameter ini. -
Nilai kembali
Nilai bertipe STRING dikembalikan. Nilai kembali bervariasi berdasarkan aturan berikut:
-
Jika nilai
expr2lebih besar dari 0 dan kurang dari atau sama dengan 340, nilai yang dibulatkan ke jumlah tempat desimal yang ditentukan dikembalikan. -
Jika nilai
expr2adalah 0, nilai kembali hanya berisi bagian integer dan tidak mengandung titik desimal atau bagian desimal. -
Jika nilai
expr2kurang dari 0 ataulebih dari 340, error dikembalikan. -
Jika expr1 atau expr2 kosong atau diatur ke null, null dikembalikan.
-
-
Contoh
-
Contoh 1: Format angka sesuai ketentuan. Pernyataan contoh:
-- Mengembalikan 5.230. SELECT FORMAT_NUMBER(5.230134523424545456,3); -- Mengembalikan 12,332.123. SELECT FORMAT_NUMBER(12332.123456, '#,###,###,###.###'); -
Contoh 2: Salah satu parameter input kosong atau NULL. Pernyataan contoh:
-- Mengembalikan NULL. SELECT FORMAT_NUMBER('',3); -- Mengembalikan NULL. SELECT FORMAT_NUMBER(null,3);
-
FROM_CHARSET
-
Sintaksis
STRING FROM_CHARSET(binary <source>, string <source_charset>, [string <mode>]) -
Deskripsi
FROM_CHARSET mengonversi data biner yang di-encode non-UTF-8 menjadi string UTF-8 untuk perhitungan selanjutnya.
-
Parameter
-
source: wajib. Nilai bertipe BINARY. Parameter ini menentukan data biner yang ingin Anda konversi.
-
source_charset: wajib. Nilai bertipe STRING. Parameter ini menentukan format encoding asli dari data biner yang ditentukan oleh source. Nilai valid: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII, GB2312, GBK, dan GB18030.
-
mode: opsional. Nilai bertipe STRING. Parameter ini menentukan mode pemrosesan jika karakter tidak dapat dikonversi saat fungsi FROM_CHARSET mengonversi data biner yang ditentukan oleh source menjadi string dalam format encoding yang ditentukan. Nilai valid:
-
NONE: melaporkan error. Tidak ada pemrosesan yang dilakukan. Ini adalah nilai default.
-
TRANSLIT: mengganti karakter dengan karakter serupa dalam format encoding yang ditentukan.
-
IGNORE: mengabaikan error dan melanjutkan menjalankan perintah.
-
-
-
Nilai kembali
Mengembalikan tipe STRING yang di-encode UTF-8. Saat parameter bernilai NULL atau string kosong, nilai kembali mengikuti aturan berikut:
-
Jika ada parameter input yang bernilai NULL, mengembalikan NULL.
-
Jika ada parameter input yang merupakan string kosong, mengembalikan error.
-
-
Contoh
-
Contoh 1: Konversi data biner yang di-encode UTF-8 menjadi string yang di-encode UTF-8.
SELECT FROM_CHARSET(unhex('e58aa0e6b2b9e9949fe696a4e68bb70a'),'UTF-8', 'TRANSLIT');Mengembalikan:
+------------+| _c0 |+------------+| 加油锟斤拷 |+------------+ -
Contoh 2: Konversi data biner yang di-encode GBK menjadi string yang di-encode UTF-8.
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), 'GBK');Mengembalikan:
+------------+| _c0 |+------------+| 哈哈好の |+------------+ -
Contoh 3: Jika parameter input bernilai null, null dikembalikan.
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), null);Mengembalikan:
+------------+| _c0 |+------------+| NULL |+------------+
-
FROM_JSON
-
Sintaksis
from_json(<jsonStr>, <schema>) -
Deskripsi
Mengembalikan data bertipe ARRAY, MAP, atau STRUCT berdasarkan string JSON jsonStr dan format output schema.
-
Parameter
-
jsonStr: wajib. String JSON yang Anda masukkan.
-
schema: wajib. Skema string JSON. Nilai parameter ini harus dalam format yang sama seperti pada pernyataan pembuatan tabel, seperti
array<bigint>,map<string, array<string>>, ataustruct<a:int, b:double, `C`:map<string,string>>.CatatanKunci dalam struct bersifat case-sensitive. Anda juga dapat menentukan struct dalam format
a BIGINT, b DOUBLE, yang setara denganSTRUCT<a:BIGINT, b:DOUBLE>.Tabel berikut menjelaskan pemetaan antara tipe data JSON dan tipe data MaxCompute.
Tipe data JSON
Tipe data MaxCompute
OBJECT
STRUCT, MAP, dan STRING
ARRAY
ARRAY dan STRING
NUMBER
TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, dan STRING
BOOLEAN
BOOLEAN dan STRING
STRING
STRING, CHAR, VARCHAR, BINARY, DATE, dan DATETIME
NULL
Semua tipe
CatatanString JSON bertipe OBJECT dan ARRAY diurai semaksimal mungkin. Jika tipe data string JSON tidak dipetakan ke tipe data MaxCompute apa pun, string JSON tersebut diabaikan. Untuk memudahkan penggunaan, semua tipe data JSON dapat dikonversi menjadi tipe data STRING yang didukung MaxCompute. Saat Anda mengonversi string JSON bertipe NUMBER menjadi nilai bertipe FLOAT, DOUBLE, atau DECIMAL, presisi nilai tersebut tidak dapat dijamin. Kami menyarankan Anda mengonversi string JSON menjadi nilai bertipe STRING terlebih dahulu, lalu mengonversi nilai yang diperoleh menjadi nilai bertipe FLOAT, DOUBLE, atau DECIMAL.
-
-
Nilai kembali
Nilai bertipe ARRAY, MAP, atau STRUCT dikembalikan.
-
Contoh
-
Contoh 1: Konversi string JSON tertentu menjadi nilai tipe data tertentu. Pernyataan contoh:
-- Nilai kembali adalah {"a":1,"b":0.8}. select from_json('{"a":1, "b":0.8}', 'a int, b double'); -- Nilai kembali adalah {"time":"26/08/2015"}. select from_json('{"time":"26/08/2015"}', 'time string'); -- Nilai kembali adalah {"a":1,"b":0.8}. select from_json('{"a":1, "b":0.8}', 'a int, b double, c string'); -- Nilai kembali adalah [1,2,3]. select from_json('[1, 2, 3, "a"]', 'array<bigint>'); -- Nilai kembali adalah {"d":"v","a":"1","b":"[1,2,3]","c":"{}"}. select from_json('{"a":1,"b":[1,2,3],"c":{},"d":"v"}', 'map<string, string>'); -
Contoh 2: Gunakan fungsi
map_keysdanfrom_jsonuntuk mendapatkan semua kunci dalam string JSON. Anda juga dapat menggunakan JSON_KEYS untuk tujuan yang sama. Pernyataan contoh:-- Nilai kembali adalah ["a","b"]. select map_keys(from_json('{"a":1,"b":2}','map<string,string>'));
-
GET_JSON_OBJECT
Catatan penggunaan
Fungsi ini digunakan untuk mengekstrak string tertentu dari string JSON standar dengan menggunakan JSONPath. Fungsi ini mendukung parameter input dengan tipe data berikut:
-
Tipe JSON: Jika parameter input bertipe JSON, ekspresi JSONPath standar digunakan.
-
Tipe STRING: Jika parameter input bertipe STRING, ekspresi JSONPath asli digunakan.
Catatan
-
Ekspresi JSONPath yang digunakan saat parameter input bertipe JSON dan yang digunakan saat parameter input bertipe STRING mengikuti aturan yang berbeda. Hal ini dapat menyebabkan masalah ketidakcocokan.
-
Fungsi GET_JSON_OBJECT tidak mendukung sintaksis ekspresi JSONPath.
Parameter input bertipe data JSON
-
Sintaksis
string get_json_object(json <json>, string <json_path>) -
Deskripsi
Mengekstrak satu string dari string JSON standar berdasarkan JSON PATH.
-
Parameter
-
json: wajib. String JSON dari mana Anda ingin mengekstrak satu string.
-
json_path: wajib. Ekspresi JSONPath berdasarkan mana Anda ingin mengekstrak satu string.
-
-
Nilai kembali
Nilai bertipe STRING dikembalikan.
-
Contoh
-
Contoh 1: Ekstrak nilai yang sesuai dengan kunci a dari string JSON.
SELECT get_json_object(json '{"a":1, "b":2}', '$.a');Mengembalikan:
+-----+| _c0 |+-----+| 1 |+-----+ -
Contoh 2: Ekstrak nilai yang sesuai dengan kunci c dari string JSON.
SELECT get_json_object(json '{"a":1, "b":2}', '$.c');Mengembalikan:
+-----+| _c0 |+-----+| NULL |+-----+ -
Contoh 3: Jika jalur JSON yang tidak valid ditentukan, nilai kembali adalah NULL.
SELECT get_json_object(json '{"a":1, "b":2}', '$invalid_json_path');Mengembalikan:
+-----+| _c0 |+-----+| NULL |+-----+
-
Parameter input bertipe data STRING
-
Sintaksis
string get_json_object(string <json>, string <path>) -
Deskripsi
Mengekstrak satu string dari string JSON standar berdasarkan path. Data asli dibaca setiap kali fungsi ini dipanggil. Oleh karena itu, pemanggilan berulang dapat memengaruhi kinerja sistem dan meningkatkan biaya. Untuk mencegah pemanggilan berulang, Anda dapat menggunakan fungsi
GET_JSON_OBJECTdengan UDTF. Untuk informasi lebih lanjut, lihat Konversi data log JSON menggunakan fungsi bawaan MaxCompute dan UDTF. -
Parameter
-
json: wajib. Nilai bertipe STRING. Parameter ini menentukan objek JSON standar dalam format
{Key:Value, Key:Value,...}. Jika string berisi tanda kutip ganda ("), gunakan dua backslash (\\) untuk meng-escape tanda kutip ganda (") sebelum ekstraksi. Jika string berisi tanda kutip tunggal ('), gunakan satu backslash (\) untuk meng-escape tanda kutip tunggal (') sebelum ekstraksi. -
path: wajib. Nilai bertipe STRING. Parameter ini menentukan path dalam nilai parameter json dan dimulai dengan
$. Untuk informasi lebih lanjut tentang parameter path, lihat LanguageManual UDF. Untuk praktik terbaik, lihat Migrasi data JSON dari OSS ke MaxCompute. Arti karakter berbeda:-
$: menunjukkan node root. -
.atau['']: menunjukkan node anak. MaxCompute mengurai objek JSON menggunakan.atau['']. Jika kunci dalam objek JSON berisi titik (.), [''] dapat digunakan. -
[]([number]): menunjukkan indeks array, yang dimulai dari 0. -
*: menunjukkan wildcard untuk[]. Jika karakter ini digunakan dalam parameter path, seluruh array dikembalikan. Tanda bintang (*) tidak dapat di-escape.
-
-
-
Batasan
Hanya MaxCompute V2.0 yang memungkinkan Anda mengekstrak data menggunakan
['']dalam parameter path. Untuk menggunakan [''], Anda harus menambahkan pernyataanset odps.sql.udf.getjsonobj.new=true;sebelum pernyataan yang ingin Anda eksekusi. -
Nilai kembali
-
Jika parameter json kosong atau tidak valid, null dikembalikan.
-
Jika format json valid dan path ada, string terkait dikembalikan.
-
Anda dapat menentukan parameter
flagodps.sql.udf.getjsonobj.newuntuk sesi guna menentukan cara fungsi ini mengembalikan nilai.-
Jika Anda mengeksekusi pernyataan
set odps.sql.udf.getjsonobj.new=true;, fungsi ini mempertahankan string asli saat mengembalikan nilai.Kami menyarankan Anda menggunakan konfigurasi ini karena menghasilkan perilaku pengembalian fungsi yang lebih standar. Hal ini memfasilitasi pemrosesan data dan meningkatkan kinerja pemrosesan data. Jika ada pekerjaan yang menggunakan fungsi ini untuk meng-escape karakter ter-reserve JSON dalam proyek MaxCompute, kami menyarankan Anda mempertahankan operasi escape asli untuk mencegah error akibat kurangnya verifikasi. Fungsi ini mengikuti aturan berikut saat mengembalikan nilai:
-
Dalam konfigurasi ini, nilai kembali tetap berupa string JSON, yang dapat diurai sebagai data JSON, tanpa perlu menggunakan fungsi
REPLACEatauREGEXP_REPLACEuntuk mengganti backslash (\). -
Kunci duplikat diperbolehkan dalam objek JSON. Jika kunci duplikat ada, data dapat diurai.
-- Nilai kembali adalah 1. select get_json_object('{"a":"1","a":"2"}', '$.a'); -
String yang di-encode yang sesuai dengan emoji didukung. Namun, DataWorks tidak memungkinkan Anda memasukkan emoji. DataWorks hanya memungkinkan Anda memasukkan string yang di-encode yang sesuai dengan emoji ke MaxCompute menggunakan alat seperti Data Integration. DataWorks menggunakan fungsi
GET_JSON_OBJECTuntuk memproses data.-- Nilai kembali adalah emoji. select get_json_object('{"a":"<Emoji>"}', '$.a'); -
Hasil output ditampilkan dalam urutan abjad.
-- Nilai kembali adalah {"b":"1","a":"2"}. select get_json_object('{"b":"1","a":"2"}', '$');
-
-
Jika Anda mengeksekusi pernyataan
set odps.sql.udf.getjsonobj.new=false;, fungsi ini meng-escape karakter ter-reserve JSON saat mengembalikan nilai. Fungsi ini mengikuti aturan berikut saat mengembalikan nilai:-
Karakter ter-reserve JSON seperti line feed (\n) dan tanda kutip (") ditampilkan sebagai
'\n'dan'\"'. -
Setiap kunci dalam objek JSON harus unik. Jika kunci duplikat ada, data mungkin gagal diurai. Pernyataan contoh:
-- Nilai kembali adalah null. select get_json_object('{"a":"1","a":"2"}', '$.a'); -
String yang di-encode yang sesuai dengan emoji tidak dapat diurai. Pernyataan contoh:
-- Nilai kembali adalah null. select get_json_object('{"a":"<Emoji>"}', '$.a'); -
Hasil output ditampilkan dalam urutan abjad. Pernyataan contoh:
-- Nilai kembali adalah {"a":"2","b":"1"}. select get_json_object('{"b":"1","a":"2"}', '$');
-
Catatan
Untuk proyek MaxCompute yang dibuat pada atau setelah 21 Januari 2021, fungsi
GET_JSON_OBJECTmempertahankan string asli saat mengembalikan nilai. Untuk proyek MaxCompute yang dibuat sebelum 21 Januari 2021, fungsiGET_JSON_OBJECTmeng-escape karakter ter-reserve JSON saat mengembalikan nilai. Contoh berikut membantu Anda menentukan cara fungsiGET_JSON_OBJECTmengembalikan nilai dalam proyek MaxCompute.select get_json_object('{"a":"[\\"1\\"]"}', '$.a'); -- Mengembalikan karakter ter-reserve JSON menggunakan karakter escape. [\"1\"] -- Mengembalikan string asli. ["1"]Anda dapat mengajukan permohonan atau mencari ID grup DingTalk 11782920 untuk bergabung dengan grup komunitas developer MaxCompute di DingTalk dan meminta insinyur dukungan teknis MaxCompute mengonfigurasi fungsi
GET_JSON_OBJECTagar mempertahankan string asli. Dengan cara ini, Anda tidak perlu sering menentukan set odps.sql.udf.getjsonobj.new=false; untuk sesi. -
-
-
Contoh
-
Contoh 1: Ekstrak informasi dari objek JSON
src_json.json. Pernyataan contoh:-- String JSON src_json.json berisi konten berikut: +----+ json +----+ {"store": {"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}], "bicycle":{"price":19.95,"color":"red"} }, "email":"amy@only_for_json_udf_test.net", "owner":"amy" } -- Ekstrak informasi bidang owner dan kembalikan amy. select get_json_object(src_json.json, '$.owner') from src_json; -- Ekstrak informasi array pertama dalam bidang store.fruit dan kembalikan {"weight":8,"type":"apple"}. select get_json_object(src_json.json, '$.store.fruit[0]') from src_json; -- Ekstrak informasi bidang yang tidak ada dan kembalikan null. select get_json_object(src_json.json, '$.non_exist_key') from src_json; -
Contoh 2: Ekstrak informasi dari objek JSON bertipe ARRAY. Pernyataan contoh:
-- Nilai kembali adalah 2222. select get_json_object('{"array":[["aaaa",1111],["bbbb",2222],["cccc",3333]]}','$.array[1][1]'); -- Nilai kembali adalah ["h0","h1","h2"]. set odps.sql.udf.getjsonobj.new=true; select get_json_object('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[*]'); -- Nilai kembali adalah ["h0","h1","h2"]. set odps.sql.udf.getjsonobj.new=false; select get_json_object('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[*]'); -- Nilai kembali adalah h1. select get_json_object('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[1]'); -
Contoh 3: Ekstrak informasi dari objek JSON yang mencakup titik
(.). Pernyataan contoh:-- Buat tabel. create table mf_json (id string, json string); -- Masukkan data ke tabel. Kunci dalam data berisi titik (.). insert into table mf_json (id, json) values ("1", "{ \"China.beijing\":{\"school\":{\"id\":0,\"book\":[{\"title\": \"A\", \"price\": 8.95},{\"title\": \"B\",\"price\": 10.2}]}}}"); -- Masukkan data ke tabel. Kunci dalam data tidak berisi titik (.). insert into table mf_json (id, json) values ("2", "{ \"China_beijing\":{\"school\":{\"id\":0,\"book\":[{\"title\": \"A\", \"price\": 8.95},{\"title\": \"B\",\"price\": 10.2}]}}}"); -- Kueri nilai id dalam objek JSON yang kuncinya China.beijing. 0 dikembalikan. Hanya [''] yang dapat digunakan untuk menentukan kunci karena kunci berisi titik (.). Dengan cara ini, MaxCompute dapat mengurai kunci. select get_json_object(json, "$['China.beijing'].school['id']") from mf_json where id =1; -- Kueri nilai id dalam objek JSON yang kuncinya China_beijing. 0 dikembalikan. Anda dapat menggunakan salah satu pernyataan berikut: select get_json_object(json, "$['China_beijing'].school['id']") from mf_json where id =2; select get_json_object(json, "$.China_beijing.school['id']") from mf_json where id =2; -
Contoh 4: Parameter json kosong atau tidak valid. Pernyataan contoh:
-- Nilai kembali adalah null. select get_json_object('','$.array[1][1]'); -- Nilai kembali adalah null. select get_json_object('"array":["aaaa",1111],"bbbb":["cccc",3333]','$.array[1][1]'); -
Contoh 5: Escape string JSON. Pernyataan contoh:
set odps.sql.udf.getjsonobj.new=true; -- Nilai kembali adalah "1". select get_json_object('{"a":"\\"1\\"","b":"2"}', '$.a'); -- Nilai kembali adalah '1'. select get_json_object('{"a":"\'1\'","b":"2"}', '$.a');
-
INITCAP
-
Sintaksis
string initcap(<str>) -
Deskripsi
Mengonversi str ke bentuk title case di mana kata-kata dipisahkan spasi, dengan huruf pertama setiap kata kapital dan sisanya huruf kecil.
-
Parameter
str: wajib. Tipe STRING. String input.
-
Nilai kembali
Mengembalikan string dengan huruf pertama setiap kata kapital dan sisanya huruf kecil.
-
Contoh
-- Mengembalikan Odps Sql. SELECT initcap("oDps sql");
INSTR
-
Sintaksis
bigint instr(string <str1>, string <str2>[, bigint <start_position>[, bigint <nth_appearance>]]) -
Deskripsi
Menemukan posisi substring str2 dalam string str1.
-
Parameter
-
str1: wajib. Tipe STRING. String target untuk pencarian. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING. Tipe lain mengembalikan error.
-
str2: wajib. Tipe STRING. Substring yang dicocokkan. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING. Tipe lain mengembalikan error.
-
start_position: opsional. Nilai bertipe BIGINT. Error dikembalikan untuk tipe data lain. Parameter ini menentukan posisi karakter dalam str1 tempat pencarian dimulai. Posisi awal default adalah karakter pertama, yaitu posisi 1. Jika start_position bernilai negatif, pencarian dimulai dari akhir string ke belakang, di mana karakter terakhir berada di posisi -1, kedua dari akhir di -2, dan seterusnya.
-
nth_appearance: Opsional. Nilai bertipe BIGINT yang harus lebih besar dari 0. Parameter ini menentukan posisi kemunculan ke-nth_appearance dari str2 dalam str1. Jika nth_appearance bertipe data lain atau kurang dari atau sama dengan 0, error dikembalikan.
-
-
Nilai kembali
Mengembalikan tipe BIGINT. Nilai kembali mengikuti aturan berikut:
-
Jika str1 tidak mengandung str2, mengembalikan 0.
-
Jika str2 kosong, selalu cocok berhasil. Contoh:
select instr('abc','');mengembalikan 1. -
Jika str1, str2, start_position, atau nth_appearance bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Temukan posisi karakter
edalam stringTech on the net. Pernyataan contoh:-- Mengembalikan 2. select instr('Tech on the net', 'e'); -
Contoh 2: Temukan posisi substring
ondalam stringTech on the net. Pernyataan contoh:-- Mengembalikan 6. select instr('Tech on the net', 'on'); -
Contoh 3: Temukan posisi kemunculan kedua karakter
edalam stringTech on the netmulai dari karakter ketiga. Pernyataan contoh:-- Mengembalikan 14. select instr('Tech on the net', 'e', 3, 2); -
Contoh 4: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select instr('Tech on the net', null);
-
IS_ENCODING
-
Sintaksis
boolean is_encoding(string <str>, string <from_encoding>, string <to_encoding>) -
Deskripsi
Menentukan apakah string input str dapat dikonversi dari set karakter from_encoding ke to_encoding. Juga digunakan untuk mendeteksi teks rusak—biasanya atur from_encoding ke UTF-8 dan to_encoding ke GBK.
-
Parameter
-
str: wajib. Tipe STRING. String kosong dianggap valid untuk set karakter apa pun.
-
from_encoding, to_encoding: wajib. Tipe STRING. Set karakter sumber dan target.
-
-
Nilai kembali
Mengembalikan tipe BOOLEAN. Nilai kembali mengikuti aturan berikut:
-
Jika str berhasil dikonversi, mengembalikan True; jika tidak, False.
-
Jika str, from_encoding, atau to_encoding bernilai NULL, mengembalikan NULL.
-
JSON_TUPLE
-
Sintaksis
string json_tuple(string <json>, string <key1>, string <key2>,...) -
Deskripsi
Mengekstrak string dari string JSON standar berdasarkan serangkaian kunci input, seperti
(key1,key2,...). -
Parameter
-
json: wajib. Nilai bertipe STRING. Parameter ini menentukan string JSON standar.
-
key: wajib. Nilai bertipe STRING. Parameter ini digunakan untuk menggambarkan
pathobjek JSON dalam string JSON. Nilainya tidak boleh dimulai dengan tanda dolar ($). Anda dapat memasukkan beberapa kunci sekaligus. MaxCompute mengurai objek JSON menggunakan.atau['']. Jika kunci dalam objek JSON mencakup titik(.),['']dapat digunakan.
-
-
Nilai kembali
Nilai bertipe STRING dikembalikan.
Catatan-
Jika json kosong atau tidak valid, null dikembalikan.
-
Jika key kosong, tidak valid, atau tidak ada dalam string JSON, null dikembalikan.
-
Jika json valid dan key ada, string terkait dikembalikan.
-
Fungsi ini dapat mengurai data JSON yang berisi karakter Tionghoa.
-
Fungsi ini dapat mengurai data JSON bersarang.
-
Fungsi ini dapat mengurai data JSON yang berisi array bersarang.
-
Tindakan penguraian setara dengan eksekusi GET_JSON_OBJECT bersama dengan
set odps.sql.udf.getjsonobj.new=true;. Untuk mendapatkan beberapa objek dari string JSON, Anda harus memanggil fungsi GET_JSON_OBJECT beberapa kali. Akibatnya, string JSON diurai beberapa kali. Fungsi JSON_TUPLE memungkinkan Anda memasukkan beberapa kunci sekaligus dan string JSON hanya diurai sekali. JSON_TUPLE lebih efisien daripada GET_JSON_OBJECT. -
JSON_TUPLE adalah fungsi user-defined table-valued function (UDTF). Jika Anda ingin memilih beberapa kolom dari tabel, gunakan JSON_TUPLE bersama dengan klausa LATERAL VIEW.
-
KEYVALUE
-
Sintaksis
keyvalue(string <str>,[string <split1>,string <split2>,] string <key>) keyvalue(string <str>,string <key>) -
Deskripsi
Memisahkan string str menjadi pasangan kunci-nilai menggunakan split1, memisahkan pasangan menggunakan split2, dan mengembalikan nilai yang sesuai dengan key.
-
Parameter
-
str: wajib. Tipe STRING. String yang akan dipisahkan.
-
split1, split2: opsional. Tipe STRING. String delimiter untuk pemisahan. Jika tidak ditentukan, nilai default split1 adalah
";"dan split2 adalah":". Jika substring yang dipisahkan oleh split1 berisi beberapa split2, hasilnya tidak terdefinisi. -
key: wajib. Tipe STRING. Setelah dipisahkan oleh split1 dan split2, mengembalikan nilai untuk key.
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika split1 atau split2 bernilai NULL, mengembalikan NULL.
-
Jika str atau key bernilai NULL atau tidak ada key yang cocok, mengembalikan NULL.
-
Jika beberapa pasangan kunci-nilai cocok, mengembalikan nilai untuk key yang cocok pertama.
-
-
Contoh
-
Contoh 1: Pisahkan string
0:1/;1:2menjadi pasangan kunci-nilai dan kembalikan nilai untuk kunci1. Pernyataan contoh:-- Mengembalikan 2. select keyvalue('0:1/;1:2', 1);Parameter split1 dan split2 tidak ditentukan. Nilai default split1 adalah titik koma (
";") dan nilai default split2 adalah titik dua (":").Setelah dipisahkan oleh split1, pasangan kunci-nilai adalah
0:1/,1:2. Setelah dipisahkan oleh split2:0 1/ 1 2Mengembalikan nilai 2 untuk kunci 1.
-
Contoh 2: Pisahkan string
“\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;”menggunakan“\;”sebagai split1 dan":"sebagai split2, lalu kembalikan nilai untuk kuncitf. Pernyataan contoh:-- Mengembalikan 21910. select keyvalue("\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;","\;",":","tf");Memisahkan string
"\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;"menggunakan delimiter"\;"menghasilkan pasangan kunci-nilai berikut.decreaseStore:1,xcard:1,isB2C:1,tf:21910,cart:1,shipping:2,pf:0,market:shoes,instPayAmount:0Hasil pemisahan oleh
":"adalah sebagai berikut.decreaseStore 1 xcard 1 isB2C 1 tf 21910 cart 1 shipping 2 pf 0 market shoes instPayAmount 0Mengembalikan nilai 21910 untuk kunci
tf.
-
KEYVALUE_TUPLE
-
Sintaksis
KEYVALUE_TUPLE(str, split1, split2, key1, key2, ..., keyN) -
Deskripsi
Memisahkan string str menjadi pasangan kunci-nilai menggunakan split1, memisahkan pasangan menggunakan split2, dan mengembalikan nilai untuk beberapa key.
-
Parameter
-
str: wajib. Tipe STRING. String yang akan dipisahkan.
-
split1, split2: wajib. Tipe STRING. String delimiter untuk pemisahan. Jika substring yang dipisahkan oleh split1 berisi beberapa split2, hasilnya tidak terdefinisi.
-
key: wajib. Tipe STRING. Setelah dipisahkan oleh split1 dan split2, mengembalikan nilai untuk key.
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika split1 atau split2 bernilai NULL, mengembalikan NULL.
-
Jika str atau key bernilai NULL atau tidak ada key yang cocok, mengembalikan NULL.
-
-
Contoh
-- Buat tabel create table mf_user ( user_id string, user_info string ); -- Masukkan data insert into mf_user values('1','age:18;genda:f;address:abc'),('2','age:20;genda:m;address:bcd'); -- Kueri SELECT user_id, KEYVALUE(user_info,';',':','age') as age, KEYVALUE(user_info,';',':','genda') as genda, KEYVALUE(user_info,';',':','address') as address FROM mf_user; -- Setara dengan kueri KEYVALUE SELECT user_id, age, genda, address FROM mf_user LATERAL VIEW KEYVALUE_TUPLE(user_info,';', ':','age','genda','address') ui AS age,genda,address;Hasilnya sebagai berikut.
+------------+------------+------------+------------+ | user_id | age | genda | address | +------------+------------+------------+------------+ | 1 | 18 | f | abc | | 2 | 20 | m | bcd | +------------+------------+------------+------------+
LENGTH
-
Sintaksis
bigint length(string <str>) -
Deskripsi
Menghitung panjang string str.
-
Parameter
str: wajib. Tipe STRING. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
Nilai kembali
Mengembalikan tipe BIGINT. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, mengembalikan error.
-
Jika str bernilai NULL, mengembalikan NULL.
-
Jika str tidak di-encode UTF-8, mengembalikan -1.
-
-
Contoh
-
Contoh 1: Hitung panjang string
Tech on the net. Pernyataan contoh:-- Mengembalikan 15. select length('Tech on the net'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select length(null);
-
LENGTHB
-
Sintaksis
bigint lengthb(string <str>) -
Deskripsi
Menghitung panjang byte dari string str.
-
Parameter
str: wajib. Tipe STRING. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
Nilai kembali
Mengembalikan tipe BIGINT. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, mengembalikan error.
-
Jika str bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Hitung panjang byte dari string
Tech on the net. Pernyataan contoh:-- Mengembalikan 15. select lengthb('Tech on the net'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select lengthb(null);
-
LOCATE
-
Sintaksis
bigint locate(string <substr>, string <str>[, bigint <start_pos>]) -
Deskripsi
Menemukan posisi substring substr dalam str. Gunakan start_pos untuk menentukan posisi awal (dihitung dari 1).
-
Parameter
-
substr: wajib. Tipe STRING. Substring yang dicari.
-
str: wajib. Tipe STRING. String yang dicari.
-
start_pos: opsional. Tipe BIGINT. Posisi awal untuk pencarian.
-
-
Nilai kembali
Mengembalikan tipe BIGINT. Nilai kembali mengikuti aturan berikut:
-
Jika str tidak mengandung substr, mengembalikan 0.
-
Jika str atau substr bernilai NULL, mengembalikan NULL.
-
Jika start_pos bernilai NULL, mengembalikan 0.
-
-
Contoh
-
Contoh 1: Temukan posisi string
abdalam stringabchelloabc. Pernyataan contoh:-- Mengembalikan 1. select locate('ab', 'abchelloabc'); -
Contoh 2: Temukan posisi string
hidalam stringabchelloabc. Pernyataan contoh:-- Mengembalikan 0. select locate('hi', 'abc,hello,ab,c'); -
Contoh 3: start_pos bernilai NULL. Pernyataan contoh:
-- Mengembalikan 0. select locate('ab', 'abhelloabc', null);
-
LPAD
-
Sintaksis
string lpad(string <str1>, int <length>, string <str2>) -
Deskripsi
Menambahkan padding di sebelah kiri string str1 hingga mencapai length karakter menggunakan string str2. Fungsi ini merupakan ekstensi di MaxCompute V2.0.
-
Parameter
-
str1: wajib. Tipe STRING. String yang akan diberi padding kiri.
-
length: wajib. Tipe INT. Jumlah karakter untuk padding kiri.
-
str2: wajib. String padding.
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika length kurang dari panjang str1, mengembalikan karakter paling kiri sebanyak length dari str1.
-
Jika length adalah 0, mengembalikan string kosong.
-
Jika tidak ada parameter input atau ada parameter input yang bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Gunakan string
12untuk menambahkan padding kiri pada stringabcdefghhingga mencapai 10 karakter. Perintah contohnya sebagai berikut.-- Mengembalikan 12abcdefgh. select lpad('abcdefgh', 10, '12'); -
Contoh 2: Gunakan string
12untuk menambahkan padding kiri pada stringabcdefghhingga mencapai panjang 5 karakter. Berikut adalah perintah contohnya.-- Mengembalikan abcde. select lpad('abcdefgh', 5, '12'); -
Contoh 3: length adalah 0. Pernyataan contoh:
-- Mengembalikan string kosong. select lpad('abcdefgh' ,0, '12'); -
Contoh 4: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select lpad(null ,0, '12');
-
LTRIM
-
Sintaksis
string ltrim(string <str>[, <trimChars>]) string trim(leading [<trimChars>] from <str>) -
Deskripsi
Menghapus karakter dari ujung kiri str:
-
Jika trimChars tidak ditentukan, secara default menghapus spasi awal.
-
Jika Anda menentukan trimChars, fungsi ini memperlakukan karakter dalam trimChars sebagai himpunan dan menghapus substring terpanjang yang mungkin dari ujung kiri str yang seluruhnya terdiri atas karakter dalam himpunan trimChars.
-
-
Parameter
-
str: wajib. Tipe STRING. String yang akan dipangkas. Jika input bertipe BIGINT, DECIMAL, DOUBLE, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
trimChars: opsional. Tipe STRING. Karakter yang akan dihapus.
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, mengembalikan error.
-
Jika str atau trimChars bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Hapus spasi awal dari string
yxTxyomxx. Pernyataan contoh:-- Mengembalikan yxTxyomxx. select ltrim(' yxTxyomxx '); -- Setara dengan: select trim(leading from ' yxTxyomxx '); -
Contoh 2: Hapus semua karakter awal dari string
yxTxyomxxyang berada dalam himpunanxy.-- Mengembalikan Txyomxx. Semua x atau y awal dihapus. select ltrim('yxTxyomxx', 'xy'); -- Setara dengan: select trim(leading 'xy' from 'yxTxyomxx'); -
Contoh 3: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select ltrim(null); select ltrim('yxTxyomxx', null);
-
MASK_HASH
-
Sintaksis
mask_hash(<expr>) -
Deskripsi
Mengembalikan nilai hash yang dihitung dari ekspresi string expr. Nilai hash yang identik menunjukkan nilai ekspresi yang identik.
-
Parameter
expr: wajib. Ekspresi string untuk perhitungan hash. Mendukung tipe STRING, CHAR, VARCHAR, BINARY.
-
Nilai kembali
Mengembalikan nilai hash sepanjang 64 byte. Untuk ekspresi non-string, mengembalikan
null(kompatibel Hive). -
Contoh
-- Mengembalikan hash untuk abc select mask_hash("abc"); -- Mengembalikan +------------+ | _c0 | +------------+ | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad | +------------+ -- Mengembalikan NULL untuk input non-string select mask_hash(100); -- Mengembalikan +------------+ | _c0 | +------------+ | NULL | +------------+
MD5
-
Sintaksis
string md5(string <str>) -
Deskripsi
Menghitung hash MD5 dari string str.
-
Parameter
str: wajib. Tipe STRING. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, mengembalikan error.
-
Jika str bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Hitung hash MD5 dari string
Tech on the net. Pernyataan contoh:-- Mengembalikan ddc4c4796880633333d77a60fcda9af6. select md5('Tech on the net'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select md5(null);
-
PARSE_URL
-
Sintaksis
string parse_url(string <url>, string <part>[, string <key>]) -
Deskripsi
Mengurai url dan mengekstrak informasi yang ditentukan oleh part.
-
Parameter
-
url: wajib. Tipe STRING. Tautan URL. URL yang tidak valid mengembalikan error.
-
part: wajib. Tipe STRING. Nilai valid: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO (tidak case-sensitive).
-
key: opsional. Ketika part adalah QUERY, mengembalikan nilai untuk key.
-
-
Deskripsi pengembalian
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika url, part, atau key bernilai NULL, mengembalikan NULL.
-
Jika part tidak valid, mengembalikan error.
-
-
Contoh
-- Mengembalikan example.com. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST'); -- Mengembalikan /over/there/index.dtb. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PATH'); -- Mengembalikan animal. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'QUERY', 'type'); -- Mengembalikan nose. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'REF'); -- Mengembalikan file. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PROTOCOL'); -- Mengembalikan username:password@example.com:8042. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'AUTHORITY'); -- Mengembalikan username:password. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'USERINFO');
PARSE_URL_TUPLE
-
Sintaksis
string parse_url_tuple(string <url>, string <key1>, string <key2>,...) -
Deskripsi
Mengurai url dan mengekstrak string yang ditentukan oleh kunci input key1, key2, dll. Mirip dengan PARSE_URL tetapi mengekstrak beberapa kunci sekaligus dengan kinerja lebih baik.
-
Parameter
-
url: wajib. Tipe STRING. Tautan URL. URL yang tidak valid mengembalikan error.
-
key1, key2: wajib. Tipe STRING. Kunci yang akan diekstrak. Nilai valid:
-
HOST: Alamat host (domain atau IP).
-
PATH: Jalur ke sumber daya jaringan di server.
-
QUERY: String kueri (konten untuk kueri).
-
REF: menunjukkan pengidentifikasi fragmen URL, yaitu konten setelah simbol
#. -
PROTOCOL: Jenis protokol.
-
AUTHORITY: Domain/IP server, port, dan info autentikasi pengguna (username, password).
-
FILE: Jalur dan konten kueri (PATH + QUERY).
-
USERINFO: Info autentikasi pengguna.
-
QUERY:<KEY>: Nilai untuk kunci tertentu dalam string kueri.
Tidak case-sensitive. Nilai tidak valid mengembalikan error.
-
-
-
Deskripsi Pengembalian
Mengembalikan tipe STRING. Jika url atau key bernilai NULL, mengembalikan error.
-
Contoh
Ekstrak string untuk setiap kunci dari
file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose. Pernyataan contoh:select parse_url_tuple('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST', 'PATH', 'QUERY', 'REF', 'PROTOCOL', 'AUTHORITY', 'FILE', 'USERINFO', 'QUERY:type', 'QUERY:name') as (item0, item1, item2, item3, item4, item5, item6, item7, item8, item9);Mengembalikan:
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | item0 | item1 | item2 | item3 | item4 | item5 | item6 | item7 | item8 | item9 | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | example.com | /over/there/index.dtb | type=animal&name=narwhal | nose | file | username:password@example.com:8042 | /over/there/index.dtb?type=animal&name=narwhal | username:password | animal | narwhal | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
REGEXP_COUNT
-
Sintaksis
bigint regexp_count(string <source>, string <pattern>[, bigint <start_position>]) -
Deskripsi
Menghitung substring dalam source mulai dari start_position yang cocok dengan pattern yang ditentukan.
-
Parameter
-
source: wajib. Tipe STRING. String yang dicari. Tipe lain mengembalikan error.
-
pattern: wajib. Konstanta STRING atau ekspresi reguler. Pola yang dicocokkan. Untuk panduan regex lebih lanjut, lihat Pencocokan string RLIKE. pattern kosong atau tidak valid mengembalikan error.
-
start_position: opsional. Konstanta bertipe BIGINT. Nilai parameter ini harus lebih besar dari 0. Jika nilainya bertipe data lain atau kurang dari atau sama dengan 0, error dikembalikan. Jika Anda tidak menentukan parameter ini, nilai default adalah 1. Nilai ini menunjukkan bahwa pencarian dimulai dari karakter pertama string source.
-
-
Nilai kembali
Mengembalikan tipe BIGINT. Nilai kembali mengikuti aturan berikut:
-
Jika tidak ditemukan kecocokan, mengembalikan 0.
-
Jika source, pattern, atau start_position bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Hitung substring yang cocok dalam
abababcdari posisi yang ditentukan. Pernyataan contoh:-- Mengembalikan 1. select regexp_count('abababc', 'a.c'); -- Mengembalikan 2. select regexp_count('abababc', '[[:alpha:]]{2}', 3); -
Contoh 2: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select regexp_count('abababc', null); -
Contoh 3: Hitung kemunculan
:dalam string JSON{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}. Pernyataan contoh:-- Mengembalikan 4. select regexp_count('{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}',':');
-
REGEXP_EXTRACT
-
Sintaksis
string regexp_extract(string <source>, string <pattern>[, bigint <groupid>])CatatanDalam versi tipe data yang kompatibel Hive,
REGEXP_EXTRACTmengikuti spesifikasi regex Java. Dalam versi tipe data 1.0 dan 2.0, mengikuti spesifikasi MaxCompute. -
Deskripsi
Memisahkan string source menjadi grup menggunakan pattern dan mengembalikan string dari grup groupid.
-
Parameter
-
source: wajib. Tipe STRING. String yang akan dipisahkan.
-
pattern: wajib. Konstanta STRING atau ekspresi reguler. Pola yang dicocokkan. Untuk panduan regex lebih lanjut, lihat Pencocokan string RLIKE.
-
groupid: opsional. Konstanta BIGINT, harus ≥0.
CatatanData disimpan dalam format UTF-8. Karakter Tionghoa dapat direpresentasikan dalam heksadesimal dalam rentang [\\x{4e00},\\x{9fa5}].
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika pattern adalah string kosong atau tidak ada grup yang ditentukan dalam pattern, error dikembalikan.
-
groupid bukan bertipe BIGINT atau kurang dari 0, error dikembalikan. Jika Anda tidak menentukan parameter ini, nilai default adalah 1, yang menunjukkan bahwa substring dalam grup pertama dikembalikan. Jika groupid diatur ke 0, substring yang cocok dengan seluruh pattern dikembalikan.
-
Jika source, pattern, atau groupid bernilai NULL, mengembalikan NULL.
-
REGEXP_EXTRACT_ALL
-
Sintaksis
array<T> regexp_extract_all(string <source>, string <pattern>[,bigint <group_id>]) -
Deskripsi
Menemukan semua substring yang cocok dengan pola ekspresi reguler dalam string dan mengembalikannya sebagai array.
-
Parameter
-
source: wajib. Tipe STRING. String yang akan dianalisis.
-
pattern: wajib. Tipe STRING. Pola yang dicocokkan. Ini bisa berupa konstanta STRING atau ekspresi reguler. Untuk panduan regex lebih lanjut, lihat Pencocokan string RLIKE.
-
group_id: opsional. Nilai BIGINT. Parameter ini menentukan ID grup yang digunakan untuk mencocokkan pola. Nilai parameter ini harus lebih besar dari atau sama dengan
0. Jika Anda tidak menentukan parameter ini, grup dengan group_id1digunakan untuk mencocokkan pola. Jika Anda mengatur parameter ini ke0, pattern dicocokkan secara keseluruhan.
-
-
Nilai kembali
Nilai ARRAY dikembalikan. Jika Anda menentukan group_id, array yang berisi semua hasil pencocokan untuk group_id yang ditentukan dikembalikan. Jika Anda tidak menentukan group_id, array yang berisi semua hasil pencocokan untuk group_id
1dikembalikan. -
Contoh
-
Jika Anda tidak menentukan group_id, perilaku default adalah mengembalikan hasil yang cocok dengan grup pertama group_id.
SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)');Mengembalikan:
+------------+ | _c0 | +------------+ | [100,300] | +------------+ -
Jika Anda mengatur nilai group_id ke
2, hasil pencocokan untuk grup kedua group_id dikembalikan.SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)',2);Berikut adalah hasilnya.
+------------+ | _c0 | +------------+ | [200,400] | +------------+
-
REGEXP_INSTR
-
Sintaksis
bigint regexp_instr(string <source>, string <pattern>[,bigint <start_position>[, bigint <occurrence>[, bigint <return_option>]]]) -
Deskripsi
Mengembalikan posisi awal atau akhir kemunculan ke-occurrence dari substring yang cocok dengan pattern dalam source, mulai dari start_position.
-
Parameter
-
source: Wajib. String sumber. Tipe data harus STRING.
-
pattern: Wajib. Pola yang dicocokkan. Nilainya bisa berupa konstanta STRING atau ekspresi reguler. Untuk informasi lebih lanjut tentang ekspresi reguler, lihat Pencocokan string RLIKE. pattern kosong mengembalikan error.
-
start_position: Opsional. Posisi tempat pencarian dimulai. Nilainya harus konstanta BIGINT. Nilai default adalah 1.
-
occurrence: Opsional. Kemunculan kecocokan yang dicari. Nilainya harus konstanta BIGINT. Nilai default adalah 1, yang menunjukkan kecocokan pertama.
-
return_option: Opsional. Posisi yang dikembalikan. Nilainya harus konstanta BIGINT. Nilai valid: 0 menentukan posisi awal dan 1 menentukan posisi akhir. Nilai default adalah 0. Jika Anda menentukan nilai yang tidak valid, error dikembalikan.
-
-
Nilai kembali
Nilai kembali bertipe BIGINT. Parameter return_option menentukan apakah akan mengembalikan posisi awal atau akhir substring yang cocok dalam source. Nilai kembali ditentukan oleh aturan berikut:
-
Jika pattern kosong, error dikembalikan.
-
Jika nilai start_position atau occurrence bukan konstanta BIGINT atau kurang dari atau sama dengan 0, error dikembalikan.
-
Jika nilai source, pattern, start_position, occurrence, atau return_option bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Mengembalikan posisi awal kemunculan ke-
2dari substring yang cocok dengano[[:alpha:]]{1}dalam stringi love www.taobao.com, mulai dari posisi3. Pernyataan contoh:-- Mengembalikan 14. select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2); -
Contoh 2: Mengembalikan posisi akhir kemunculan ke-
keduadari substring yang cocok dengano[[:alpha:]]{1}dalam stringi love www.taobao.com. Pencarian dimulai dari karakter ke-tiga. Pernyataan contoh:-- Mengembalikan 16. select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2, 1); -
Contoh 3: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select regexp_instr('i love www.taobao.com', null, 3, 2);
-
REGEXP_REPLACE
-
Sintaksis
string regexp_replace(string <source>, string <pattern>, string <replace_string>[, bigint <occurrence>])CatatanUntuk tipe data yang kompatibel Hive, fungsi
REGEXP_REPLACEmengikuti spesifikasi ekspresi reguler Java. Untuk tipe data 1.0 dan 2.0, mengikuti spesifikasi MaxCompute. -
Deskripsi
Mengganti substring yang cocok dengan pattern pada posisi yang ditentukan oleh occurrence dalam string source dengan replace_string dan mengembalikan hasilnya.
-
Parameter
-
source: Wajib. Nilai bertipe STRING. Ini adalah string sumber yang akan dimodifikasi.
-
pattern: Wajib. Konstanta STRING atau ekspresi reguler. Ini adalah pola yang dicocokkan. Untuk informasi lebih lanjut tentang aturan ekspresi reguler, lihat Pencocokan string RLIKE. Jika pattern kosong, error dikembalikan.
-
replace_string: Wajib. Nilai bertipe STRING. Ini adalah string yang menggantikan substring yang cocok dengan pattern.
Catatan-
Jika replace_string adalah string kosong, fungsi menghapus substring yang cocok dengan pattern.
-
replace_string dapat berisi referensi balik dalam format \n untuk memasukkan substring yang cocok dengan grup penangkapan ke-n dalam pattern. Nilai n dapat berupa bilangan bulat dari 1 hingga 9. \0 memasukkan seluruh substring yang cocok dengan pattern. Anda harus melakukan escape backslash, seperti \\1, atau menggunakan string mentah, seperti R'(\1)'.
-
-
occurrence: Opsional. Konstanta bertipe BIGINT, yang harus lebih besar dari atau sama dengan 0. Nilai parameter ini menunjukkan bahwa string yang cocok dengan pola tertentu pada kemunculan ke-n yang ditentukan oleh occurrence diganti dengan replace_string. Jika parameter ini diatur ke 0, semua substring yang cocok dengan pola tertentu diganti. Jika bertipe data lain atau kurang dari 0, error dikembalikan. Nilai default: 0.
-
-
Nilai kembali
Nilai bertipe STRING dikembalikan. Nilai kembali ditentukan oleh aturan berikut:
-
Jika Anda mereferensikan grup yang tidak ada, hasilnya tidak terdefinisi.
-
Jika replace_string bernilai NULL dan ditemukan kecocokan untuk pattern, NULL dikembalikan.
-
Jika replace_string bernilai NULL dan pattern tidak cocok, fungsi mengembalikan string asli.
-
Jika source, pattern, atau occurrence bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Ganti substring berdasarkan aturan yang ditentukan.
-- Mengembalikan Abcd. select regexp_replace("abcd", "a", "A", 0); -- Mengembalikan bcd. select regexp_replace("abcd", "a", "", 0); -- Mengembalikan 19700101. select regexp_replace("1970-01-01", "-", "", 0); -- Mengembalikan abc. select regexp_replace("a1b2c3", "[0-9]", "", 0); -- Mengembalikan a1b2c. select regexp_replace("a1b2c3", "[0-9]", "", 3); -
Contoh 2: Ganti semua kecocokan untuk pola
([[:digit:]]{3})\\.([[:digit:]]{3})\\.([[:digit:]]{4})dalam string123.456.7890dengan(\\1)\\2-\\3. Pernyataan contoh:-- Mengembalikan (123)456-7890. select regexp_replace('123.456.7890', '([[:digit:]]{3})\\.([[:digit:]]{3})\\.([[:digit:]]{4})', '(\\1)\\2-\\3', 0); -
Contoh 3: Ganti substring yang cocok dengan pola dalam string
abcdberdasarkan aturan yang ditentukan. Pernyataan contoh:-- Mengembalikan a b c d. select regexp_replace('abcd', '(.)', '\\1 ', 0); -- Mengembalikan a bcd. select regexp_replace('abcd', '(.)', '\\1 ', 1); -- Mengembalikan d. select regexp_replace("abcd", "(.*)(.)$", "\\2", 0); -
Contoh 4: Tabel url_set berisi kolom URL dengan nilai dalam format
www.simple@xxx.com. Bagianxxxunik untuk setiap baris. Contoh ini mengganti semua karakter setelahwww. Pernyataan contoh:-- Mengembalikan wwwtest. select regexp_replace(url,'(www)(.*)','wwwtest',0) from url_set; -
Contoh 5: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select regexp_replace('abcd', '(.)', null, 0); -
Contoh 6: Referensi grup yang tidak ada. Pernyataan contoh:
-- Pola hanya mendefinisikan satu grup; referensi grup kedua tidak ada. -- Hindari penggunaan ini; hasilnya tidak terdefinisi. regexp_replace("abcd", "(.)", "\\2", 0) = "" or "abcd" -- Pola tidak memiliki grup; \1 mereferensikan grup yang tidak ada. -- Hindari penggunaan ini; hasilnya tidak terdefinisi. regexp_replace("abcd", "a", "\\1", 0) = "bcd" or "abcd"
-
REGEXP_SUBSTR
-
Sintaksis
string regexp_substr(string <source>, string <pattern>[, bigint <start_position>[, bigint <occurrence>]]) -
Deskripsi
Mengembalikan substring dari posisi start_position dalam string source yang cocok dengan pattern untuk kemunculan ke-occurrence.
-
Parameter
-
source: Wajib. Tipe STRING. String yang dicari.
-
pattern: Wajib. Konstanta STRING atau ekspresi reguler. Pola yang dicocokkan. Sintaksis ekspresi reguler dijelaskan dalam Pencocokan string RLIKE.
-
start_position: Opsional. Konstanta BIGINT. Nilainya harus lebih besar dari 0. Jika Anda tidak menentukan parameter ini, nilai default adalah 1, yang menunjukkan bahwa pencarian dimulai dari karakter pertama string source.
-
occurrence: Opsional. Konstanta BIGINT. Nilainya harus lebih besar dari 0. Nilai default adalah 1, yang menunjukkan kecocokan pertama.
-
-
Nilai kembali
Mengembalikan STRING. Nilai kembali mengikuti aturan berikut:
-
Jika pattern kosong, terjadi error.
-
Jika tidak ditemukan kecocokan, mengembalikan NULL.
-
Jika start_position atau occurrence bukan BIGINT atau kurang dari atau sama dengan 0, terjadi error.
-
Jika source, pattern, start_position, atau occurrence bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Mengembalikan substring yang cocok dengan pola yang ditentukan dalam
I love aliyun very much. Pernyataan contoh:-- Mengembalikan aliyun. select regexp_substr('I love aliyun very much', 'a[[:alpha:]]{5}'); -- Mengembalikan have. select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1); -- Mengembalikan 2. select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 2); -
Contoh 2: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select regexp_substr('I love aliyun very much', null);
-
REPEAT
-
Sintaksis
string repeat(string <str>, bigint <n>) -
Deskripsi
Mengembalikan string str yang diulang sebanyak n kali.
-
Parameter
-
str: wajib. Tipe STRING. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
n: wajib. Tipe BIGINT. Ukuran nilai tidak boleh melebihi 2 MB.
-
-
Nilai kembali
Mengembalikan nilai bertipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, error dikembalikan.
-
Jika n kosong, error dikembalikan.
-
Jika str atau n bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Ulangi string
abcsebanyak5kali. Pernyataan contoh:-- Mengembalikan abcabcabcabcabc. select repeat('abc', 5); -
Contoh 2: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select repeat('abc', null);
-
REPLACE
-
Sintaksis
string replace(string <str>, string <old>, string <new>) -
Deskripsi
Mengganti semua kemunculan old dengan new dalam str dan mengembalikan str yang telah dimodifikasi. Jika tidak ditemukan kecocokan, str asli dikembalikan. Fungsi ini merupakan fungsi ekstensi MaxCompute V2.0.
-
Parameter
-
str: wajib. Tipe STRING. String sumber.
-
old: Wajib. String yang akan dibandingkan.
-
new: wajib. Tipe STRING. String pengganti.
-
-
Nilai kembali
Mengembalikan nilai bertipe STRING. Jika ada parameter input yang bernilai NULL, NULL dikembalikan.
-
Contoh
-
Contoh 1: Ganti semua kemunculan substring
ababdengan12dalam stringababab. Pernyataan contoh:-- Mengembalikan 12ab. select replace('ababab','abab','12'); -
Contoh 2: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select replace('123abab456ab',null,'abab');
-
REVERSE
-
Sintaksis
string reverse(string <str>) -
Deskripsi
Mengembalikan kebalikan dari string str.
-
Parameter
str: Wajib. Parameter bertipe STRING. Jika input berupa nilai BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke tipe STRING.
-
Nilai kembali
Mengembalikan nilai bertipe STRING. Aturan berikut berlaku:
-
Jika tipe data str bukan STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, error dikembalikan.
-
Jika str bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Balikkan string
I love aliyun very much. Pernyataan contoh:-- Mengembalikan hcum yrev nuyila evol I. select reverse('I love aliyun very much'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select reverse(null);
-
RPAD
-
Sintaksis
string rpad(string <str1>, int <length>, string <str2>) -
Deskripsi
Menambahkan padding di sebelah kanan string str1 hingga mencapai length karakter menggunakan string padding str2. Fungsi ini merupakan ekstensi di MaxCompute V2.0.
-
Parameter
-
str1: wajib. Tipe STRING. String yang akan diberi padding kanan.
-
length: wajib. Tipe INT. Harus lebih besar dari atau sama dengan 0. Menentukan jumlah karakter dalam hasil yang diberi padding.
-
str2 (wajib): String yang digunakan untuk padding.
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika length kurang dari panjang str1, mengembalikan karakter paling kiri sebanyak length dari str1.
-
Jika length adalah 0, mengembalikan string kosong.
-
Jika tidak ada parameter input atau ada parameter input yang bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Tambahkan padding kanan pada string
abcdefghhingga mencapai 10 karakter menggunakan string padding12. Pernyataan contoh:-- Mengembalikan abcdefgh12. select rpad('abcdefgh', 10, '12'); -
Contoh 2: Tambahkan padding kanan pada string
abcdefghhingga mencapai 5 karakter menggunakan string padding12. Pernyataan contoh:-- Mengembalikan abcde. select rpad('abcdefgh', 5, '12'); -
Contoh 3: length adalah 0. Pernyataan contoh:
-- Mengembalikan string kosong. select rpad('abcdefgh' ,0, '12'); -
Contoh 4: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select rpad(null ,0, '12');
-
RTRIM
-
Sintaksis
string rtrim(string <str>[, <trimChars>]) string trim(trailing [<trimChars>] from <str>) -
Deskripsi
Menghapus karakter dari ujung kanan str:
-
Jika trimChars tidak ditentukan, spasi dipangkas secara default.
-
Jika trimChars ditentukan, karakter dalam trimChars diperlakukan sebagai kumpulan. Substring terpanjang dari ujung kanan str yang seluruhnya terdiri atas karakter dari kumpulan trimChars dihapus.
-
-
Parameter
-
str: wajib. Tipe STRING. String yang akan dipangkas. Jika input bertipe BIGINT, DECIMAL, DOUBLE, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
trimChars: opsional. Tipe STRING. Karakter yang akan dihapus.
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, mengembalikan error.
-
Jika str atau trimChars bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Hapus spasi akhir dari string
yxTxyomxx. Pernyataan contoh:-- Mengembalikan yxTxyomxx. select rtrim(' yxTxyomxx '); -- Setara dengan: select trim(trailing from ' yxTxyomxx '); -
Contoh 2: Hapus semua karakter akhir dari string
yxTxyomxxyang termasuk dalam himpunanxy.-- Mengembalikan yxTxyom. Semua x atau y akhir dihapus. select rtrim('yxTxyomxx', 'xy'); -- Setara dengan: select trim(trailing 'xy' from 'yxTxyomxx'); -
Contoh 3: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select rtrim(null); select rtrim('yxTxyomxx', null);
-
SOUNDEX
-
Sintaksis
string soundex(string <str>) -
Deskripsi
Mengonversi string standar menjadi string SOUNDEX.
-
Parameter
str: Wajib. String yang akan dikonversi. Parameter ini bertipe STRING. Fungsi ini merupakan ekstensi di MaxCompute V2.0.
-
Nilai kembali
Nilai kembali bertipe STRING. Jika str bernilai NULL, fungsi mengembalikan NULL.
-
Contoh
-
Contoh 1: Mengonversi string
hellomenjadi string SOUNDEX. Pernyataan contoh:-- Mengembalikan H400. select soundex('hello'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select soundex(null);
-
SPACE
-
Sintaksis
string space(bigint <n>) -
Deskripsi
Menghasilkan string yang terdiri atas n spasi.
-
Parameter
n: wajib. Tipe BIGINT. Ukuran nilai tidak boleh melebihi 2 MB.
-
Nilai kembali
Mengembalikan STRING. Nilai kembali mengikuti aturan berikut:
-
Jika n kosong, error dikembalikan.
-
Jika n bernilai NULL, NULL dikembalikan.
-
-
Contoh
-- Mengembalikan 10. select length(space(10));
SPLIT
-
Sintaksis
ARRAY<STRING> SPLIT(STRING <source>, STRING <delimiter>[, BOOLEAN <trimTailEmpty>]) -- Contoh standar. -- Mengembalikan ["a","b","c"]. SELECT SPLIT('a,b,c', ','); -
Parameter
-
source: Wajib. String yang akan dipisahkan. Tipe datanya adalah STRING.
delimiter: Wajib. Pemisah yang digunakan untuk memisahkan string. Parameter ini mendukung ekspresi reguler. Tipe datanya adalah STRING.
trimTailEmpty: Opsional. Menentukan apakah string kosong akhir dipertahankan. Nilai default adalah
true. Jika Anda mengatur parameter ini kefalse, string kosong akhir dipertahankan. Tipe datanya adalah BOOLEAN.
-
-
Nilai kembali
Mengembalikan nilai bertipe ARRAY<STRING>.
-
Contoh
-- Nilai kembali adalah ["a"," b"," c"]. select split("a, b, c", ","); -- Secara default tidak mengembalikan string kosong. select split("a, b, c,,", ","); -- Hasil berikut dikembalikan: +------------+ | _c0 | +------------+ | ["a"," b"," c"] | +------------+ -- Jika Anda perlu mengembalikan string kosong, jalankan pernyataan berikut: select split("a, b, c,,", ",", false); -- Hasil berikut dikembalikan: +------------+ | _c0 | +------------+ | ["a"," b"," c","",""] | +------------+
SPLIT_PART
-
Sintaksis
string split_part(string <str>, string <separator>, bigint <start>[, bigint <end>]) -
Deskripsi
Memisahkan string str menggunakan delimiter separator dan mengembalikan substring dari bagian start hingga end (interval tertutup).
-
Parameter
-
str: wajib. Tipe STRING. String yang akan dipisahkan. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
separator: wajib. Konstanta STRING. Delimiter (satu karakter atau string).
-
start: wajib. Konstanta BIGINT, harus lebih besar dari 0. Nomor bagian awal (dihitung dari 1).
-
end: konstanta BIGINT yang lebih besar dari atau sama dengan start. Parameter ini menentukan nomor segmen akhir yang akan dikembalikan. Jika parameter ini tidak ditentukan, nilainya default ke nilai start, dan hanya segmen yang ditentukan oleh start yang dikembalikan.
-
-
Deskripsi Nilai Kembali
Mengembalikan STRING. Nilai kembali mengikuti aturan berikut:
-
Jika start melebihi jumlah bagian aktual (misalnya, ada 6 bagian tetapi start > 6), string kosong dikembalikan.
-
Jika separator tidak ditemukan dalam str dan start = 1, seluruh str dikembalikan. Jika str kosong, string kosong dikembalikan.
-
Jika separator kosong, str asli dikembalikan.
-
Jika end melebihi jumlah bagian, substring dari start hingga bagian terakhir dikembalikan.
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, error dikembalikan.
-
Jika separator bukan konstanta STRING, error dikembalikan.
-
Jika start atau end bukan konstanta BIGINT, error dikembalikan.
-
Jika parameter apa pun kecuali separator bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Pisahkan string
a,b,c,dmenggunakan delimiter,dan kembalikan bagian yang ditentukan. Pernyataan contoh:-- Mengembalikan a. select split_part('a,b,c,d', ',', 1); -- Mengembalikan a,b. select split_part('a,b,c,d', ',', 1, 2); -
Contoh 2: start melebihi jumlah bagian aktual. Pernyataan contoh:
-- Mengembalikan string kosong. select split_part('a,b,c,d', ',', 10); -
Contoh 3: separator tidak ditemukan dalam str. Pernyataan contoh:
-- Mengembalikan a,b,c,d. select split_part('a,b,c,d', ':', 1); -- Mengembalikan string kosong. select split_part('a,b,c,d', ':', 2); -
Contoh 4: separator kosong. Pernyataan contoh:
-- Mengembalikan a,b,c,d. select split_part('a,b,c,d', '', 1); -
Contoh 5: end melebihi jumlah bagian aktual. Pernyataan contoh:
-- Mengembalikan b,c,d. select split_part('a,b,c,d', ',', 2, 6); -
Contoh 6: Parameter input apa pun kecuali separator bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select split_part('a,b,c,d', ',', null);
-
SUBSTR
-
Sintaksis
string substr(string <str>, bigint <start_position>[, bigint <length>]) -
Deskripsi
Mengembalikan substring dari str mulai dari start_position dengan panjang length.
-
Parameter
-
str: wajib. Tipe STRING. Jika input bertipe BIGINT, DECIMAL, DOUBLE, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
start_position: wajib. Tipe BIGINT. Posisi awal default adalah 1.
-
Versi tipe data kompatibel Hive: Jika start_position=0, berperilaku sama seperti posisi 1.
-
Versi tipe data 1.0 dan 2.0: Jika start_position=0, mengembalikan NULL.
-
-
length: opsional. Tipe BIGINT. Panjang substring harus >0.
Penting-
Jika
setproject odps.function.strictmode=false: length<0 mengembalikan kosong. -
Jika
setproject odps.function.strictmode=true: length<0 mengembalikan error.
-
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DECIMAL, DOUBLE, atau DATETIME, mengembalikan error.
-
Jika length bukan BIGINT atau ≤0, mengembalikan error.
-
Jika Anda menghilangkan length, substring memanjang hingga akhir str.
-
Jika str, start_position, atau length bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Mengembalikan substring dari
abcdari posisi yang ditentukan dengan panjang yang ditentukan. Pernyataan contoh:-- Mengembalikan bc. select substr('abc', 2); -- Mengembalikan b. select substr('abc', 2, 1); -- Mengembalikan bc. select substr('abc',-2 , 2); -
Contoh 2: Saat parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select substr('abc', null);
-
SUBSTRING
-
Sintaksis
string substring(string|binary <str>, int <start_position>[, int <length>]) -
Deskripsi
Mengembalikan substring dari str mulai dari start_position dengan length.
-
Parameter
-
str: wajib. Parameter ini bertipe STRING atau BINARY.
-
start_position: wajib. Parameter ini bertipe INT. Posisi awal berbasis 1. Jika start_position adalah 0, string kosong dikembalikan. Jika start_position bernilai negatif, posisi dihitung mundur dari akhir string. Dalam hal ini, -1 mengacu pada karakter terakhir, dan penghitungan berlanjut mundur secara berurutan.
-
length: opsional. Parameter ini bertipe BIGINT. Panjang substring harus lebih besar dari 0.
-
-
Nilai kembali
Nilai kembali bertipe STRING. Mengikuti aturan berikut:
-
Jika str bukan bertipe STRING atau BINARY, error dikembalikan.
-
Jika length bukan bertipe BIGINT atau kurang dari atau sama dengan 0, error dikembalikan.
-
Ketika parameter length dihilangkan, substring hingga akhir str dikembalikan.
-
Jika str, start_position, atau length bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Contoh ini mengembalikan substring dari
abcdari posisi yang ditentukan dengan panjang yang ditentukan. Pernyataan contoh:-- Mengembalikan bc. select substring('abc', 2); -- Mengembalikan b. select substring('abc', 2, 1); -- Mengembalikan bc. select substring('abc',-2,2); -- Mengembalikan ab. select substring('abc',-3,2); -- Mengembalikan 001. substring(bin(2345), 2, 3); -
Contoh 2: Contoh ini menunjukkan kasus di mana salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select substring('abc', null, null);
-
SUBSTRING_INDEX
-
Sintaksis
string substring_index(string <str>, string <separator>, int <count>) -
Deskripsi
Fungsi ini mengekstrak substring dari string str, baik sebelum maupun sesudah kemunculan ke-count dari delimiter. Jika count bernilai positif, pencarian delimiter dimulai dari kiri. Jika count bernilai negatif, pencarian dimulai dari kanan. Fungsi ini merupakan fungsi ekstensi MaxCompute V2.0.
-
Parameter
-
str: wajib. Bertipe STRING. Ini adalah string yang akan diekstrak.
-
separator: wajib. Delimiter bertipe STRING.
-
count: Wajib. Nilai INT yang menentukan posisi delimiter.
-
-
Nilai kembali
Fungsi ini mengembalikan nilai bertipe STRING. Jika ada parameter input yang bernilai NULL, fungsi mengembalikan NULL.
-
Contoh
-
Contoh 1: Mengekstrak dari string
https://www.alibabacloud.com. Pernyataan contoh:-- Mengembalikan https://www.alibabacloud. select substring_index('https://www.alibabacloud.com', '.', 2); -- Mengembalikan alibabacloud.com. select substring_index('https://www.alibabacloud.com', '.', -2); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select substring_index('https://www.alibabacloud.com', null, 2);
-
TO_CHAR
-
Sintaksis
string to_char(boolean <value>) string to_char(bigint <value>) string to_char(double <value>) string to_char(decimal <value>) -
Deskripsi
Mengonversi nilai bertipe BOOLEAN, BIGINT, DECIMAL, atau DOUBLE ke representasi STRING-nya.
-
Parameter
value: wajib. Nilai bertipe BOOLEAN, BIGINT, DECIMAL, atau DOUBLE.
-
Nilai kembali
Mengembalikan nilai bertipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika value bukan bertipe BOOLEAN, BIGINT, DECIMAL, atau DOUBLE, fungsi mengembalikan error.
-
Jika value bernilai NULL, fungsi mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Mengonversi nilai ke representasi STRING. Pernyataan contoh:
-- Mengembalikan 123. select to_char(123); -- Mengembalikan TRUE. select to_char(true); -- Mengembalikan 1.23. select to_char(1.23); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select to_char(null);
-
TO_JSON
-
Sintaksis
string to_json(<expr>) -
Deskripsi
Mengonversi ekspresi yang ditentukan oleh expr bertipe data kompleks tertentu menjadi string JSON.
-
Parameter
expr: wajib. Ekspresi bertipe ARRAY, MAP, atau STRUCT.
CatatanJika ekspresi input bertipe STRUCT (
struct<key1:value1, key2:value2>), perhatikan poin berikut:-
Semua kunci dikonversi menjadi huruf kecil saat Anda mengonversi ekspresi menjadi string JSON.
-
Jika
valuebernilai null, pasangan kunci-nilai tempatvaluetersebut berada tidak disertakan dalam string JSON yang dikembalikan. Misalnya, jikavalue2bernilai null,key2:value2tidak disertakan dalam string JSON yang dikembalikan.
-
-
Nilai kembali
String JSON dikembalikan.
-
Contoh
-
Contoh 1: Mengonversi ekspresi bertipe data kompleks tertentu menjadi string JSON. Pernyataan contoh:
-- Nilai kembali adalah {"a":1,"b":2}. select to_json(named_struct('a', 1, 'b', 2)); -- Nilai kembali adalah {"time":"26/08/2015"}. select to_json(named_struct('time', "26/08/2015")); -- Nilai kembali adalah [{"a":1,"b":2}]. select to_json(array(named_struct('a', 1, 'b', 2))); -- Nilai kembali adalah {"a":{"b":1}}. select to_json(map('a', named_struct('b', 1))); -- Nilai kembali adalah {"a":1}. select to_json(map('a', 1)); -- Nilai kembali adalah [{"a":1}]. select to_json(array((map('a', 1)))); -
Contoh 2: Ekspresi input bertipe STRUCT. Pernyataan contoh:
-- Nilai kembali adalah {"a":"B"}. Jika ekspresi bertipe STRUCT dikonversi menjadi string JSON, semua kunci dikonversi menjadi huruf kecil. select to_json(named_struct("A", "B")); -- Nilai kembali adalah {"k2":"v2"}. Pasangan kunci-nilai tempat null berada tidak disertakan dalam string JSON yang dikembalikan. select to_json(named_struct("k1", cast(null as string), "k2", "v2"));
-
TOLOWER
-
Sintaksis
string tolower(string <source>) -
Deskripsi
Mengonversi huruf kapital bahasa Inggris dalam string source menjadi huruf kecil.
-
Parameter
source: wajib. Nilai bertipe STRING. Jika input berupa nilai BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke tipe STRING. Fungsi ini hanya beroperasi pada karakter bahasa Inggris.
-
Nilai kembali
Mengembalikan nilai bertipe STRING. Nilai yang dikembalikan didasarkan pada aturan berikut:
-
Jika tipe data source bukan STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, error dikembalikan.
-
Jika source bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Mengonversi huruf kapital menjadi huruf kecil. Pernyataan contoh:
-- Mengembalikan abcd. select tolower('aBcd'); -- Mengembalikan 中国fighting. select tolower('中国Fighting'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select tolower(null);
-
TOUPPER
-
Sintaksis
string toupper(string <source>) -
Deskripsi
Mengonversi karakter huruf kecil dalam string source menjadi karakter huruf kapital yang sesuai.
-
Parameter
source: wajib. Tipe STRING. Jika input bertipe BIGINT, DOUBLE, DECIMAL, atau DATETIME, akan dikonversi secara implisit ke STRING. Hanya mendukung karakter bahasa Inggris.
-
Nilai kembali
Mengembalikan nilai bertipe STRING. Nilai yang dikembalikan didasarkan pada aturan berikut:
-
Jika tipe data source bukan STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, error dikembalikan.
-
Jika source bernilai NULL, NULL dikembalikan.
-
-
Contoh
-
Contoh 1: Mengonversi huruf kecil menjadi huruf kapital. Pernyataan contoh:
-- Mengembalikan ABCD. select toupper('aBcd'); -- Mengembalikan ChinaFIGHTING. select toupper('中国Fighting'); -
Contoh 2: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select toupper(null);
-
TRANSLATE
-
Sintaksis
string translate(string|varchar <str1>, string|varchar <str2>, string|varchar <str3>) -
Deskripsi
Mengganti setiap karakter dalam str1 yang muncul dalam str2 dengan karakter yang sesuai dalam str3. Jika tidak ditemukan kecocokan, tidak terjadi penggantian. Fungsi ini merupakan ekstensi di MaxCompute V2.0.
-
Nilai kembali
Mengembalikan STRING. Jika ada parameter input yang bernilai NULL, fungsi mengembalikan NULL.
-
Contoh
-
Contoh 1: Ganti setiap karakter dalam
abababyang muncul dalamababdengan karakter yang sesuai dalamcd. Pernyataan contoh:-- Mengembalikan cdcdcd. select translate('ababab','abab','cd'); -
Contoh 2: Ganti setiap karakter dalam
abababyang muncul dalamababdengan karakter yang sesuai dalamcdefg. Pernyataan contoh:-- Mengembalikan cdcdcd. select translate('ababab','abab','cdefg'); -
Contoh 3: Salah satu parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select translate('ababab','cd',null);
-
TRIM
-
Sintaksis
string trim(string <str>[,<trimChars>]) string trim([BOTH] [<trimChars>] from <str>) -
Deskripsi
Menghapus karakter dari kedua ujung str:
-
Jika Anda tidak menentukan trimChars, fungsi menghapus spasi secara default.
-
Jika Anda menentukan trimChars, fungsi memperlakukan karakter dalam trimChars sebagai himpunan dan menghapus substring terpanjang yang mungkin yang hanya terdiri atas karakter dari himpunan ini dari kedua ujung kiri dan kanan str.
-
-
Parameter
-
str: wajib. Tipe STRING. String yang akan dipangkas. Jika input bertipe BIGINT, DECIMAL, DOUBLE, atau DATETIME, akan dikonversi secara implisit ke STRING.
-
trimChars: opsional. Tipe STRING. Karakter yang akan dihapus.
-
-
Nilai kembali
Mengembalikan tipe STRING. Nilai kembali mengikuti aturan berikut:
-
Jika str bukan bertipe STRING, BIGINT, DOUBLE, DECIMAL, atau DATETIME, mengembalikan error.
-
Jika str atau trimChars bernilai NULL, mengembalikan NULL.
-
-
Contoh
-
Contoh 1: Hapus spasi dari kedua ujung string
yxTxyomxx. Pernyataan contoh:-- Mengembalikan yxTxyomxx. select trim(' yxTxyomxx '); -- Setara dengan: select trim(both from ' yxTxyomxx '); select trim(from ' yxTxyomxx '); -
Contoh 2: Hapus semua karakter dari kedua ujung string
yxTxyomxxyang termasuk dalam himpunanxy.-- Mengembalikan Txyom. Semua x atau y di kedua ujung dihapus. select trim('yxTxyomxx', 'xy'); -- Setara dengan: select trim(both 'xy' from 'yxTxyomxx'); select trim('xy' from 'yxTxyomxx'); -
Contoh 3: Parameter input bernilai NULL. Pernyataan contoh:
-- Mengembalikan NULL. select trim(null); select trim('yxTxyomxx', null);
-
URL_DECODE
-
Sintaksis
string url_decode(string <input>[, string <encoding>]) -
Deskripsi
Mengonversi string input dari format
application/x-www-form-urlencoded MIMEke karakter standar. Fungsi ini merupakan kebalikan dariurl_encode. Aturan encoding adalah sebagai berikut:-
a–z dan A–Z tetap tidak berubah.
-
Titik (.), tanda hubung (-), tanda bintang (*), dan garis bawah (_) tetap tidak berubah.
-
Tanda plus (+) dikonversi menjadi spasi.
-
Urutan dalam format
%xydikonversi menjadi nilai byte. Byte berurutan didekode menjadi string menggunakan nama encoding yang ditentukan. -
Semua karakter lain tetap tidak berubah.
-
-
Parameter
-
input: Parameter ini wajib dan bertipe STRING. Ini merepresentasikan string input.
-
encoding: Parameter ini opsional dan menentukan format encoding. Mendukung format seperti GBK dan UTF-8. Jika tidak ditentukan, encoding default adalah UTF-8.
-
-
Nilai kembali
Fungsi ini mengembalikan tipe STRING yang di-encode UTF-8. Jika parameter input atau encoding bernilai NULL, fungsi mengembalikan NULL.
-
Contoh
-- Mengembalikan examplefor url_decode:// (fdsf). select url_decode('%E7%A4%BA%E4%BE%8Bfor+url_decode%3A%2F%2F+%28fdsf%29'); -- Mengembalikan Example for URL_DECODE:// dsf(fasfs). select url_decode('Example+for+url_decode+%3A%2F%2F+dsf%28fasfs%29', 'GBK');
URL_ENCODE
-
Sintaksis
string url_encode(string <input>[, string <encoding>]) -
Deskripsi
Mengencode string input dalam format
application/x-www-form-urlencoded MIME. Aturan encoding:-
Huruf a–z dan A–Z tetap tidak berubah.
-
Titik (.), tanda hubung (-), tanda bintang (*), dan garis bawah (_) tetap tidak berubah.
-
Spasi dikonversi menjadi tanda plus (+).
-
Semua karakter lain dikonversi menjadi nilai byte menggunakan encoding yang ditentukan. Setiap byte muncul sebagai
%xy, di manaxyadalah representasi heksadesimal karakter tersebut.
-
-
Parameter
-
input: Wajib. Tipe STRING. String yang akan diinput.
-
encoding: opsional. Format encoding. Format yang didukung meliputi GBK dan UTF-8. Default adalah UTF-8 jika tidak ditentukan.
-
-
Nilai kembali
Mengembalikan STRING. Jika input atau encoding bernilai NULL, mengembalikan NULL.
-
Contoh
-- Mengembalikan %E7%A4%BA%E4%BE%8Bfor+url_encode%3A%2F%2F+%28fdsf%29. select url_encode('examplefor url_encode:// (fdsf)'); -- Mengembalikan Example+for+url_encode+%3A%2F%2F+dsf%28fasfs%29. select url_encode('Example for url_encode:// dsf(fasfs)', 'GBK');
Referensi
Untuk memperluas fungsi bawaan, buat fungsi yang ditentukan pengguna (UDF). Untuk informasi lebih lanjut, lihat Ikhtisar UDF MaxCompute.