All Products
Search
Document Center

Hologres:Fungsi string

Last Updated:Aug 19, 2026

Hologres mendukung fungsi string berikut. Untuk daftar lengkap fungsi string yang kompatibel dengan PostgreSQL, lihat PostgreSQL Functions.

Indeks fungsi

Konkatenasi, pemisahan, dan padding string

FunctionDescription
STRING || STRINGMenggabungkan dua string.
CONCATMenggabungkan dua atau lebih string, mengabaikan argumen NULL.
CONCAT_WSMenggabungkan string dengan pemisah, mengabaikan argumen string NULL.
LISTAGGMengagregasi nilai kolom dari beberapa baris menjadi satu string. Kompatibel dengan Oracle; memerlukan ekstensi orafce.
STRING_AGGMengagregasi nilai kolom dari beberapa baris menjadi satu string.
LEFTMengekstrak karakter dari awal string.
RIGHTMengekstrak karakter dari akhir string.
SPLIT_PARTMemisahkan string berdasarkan pembatas dan mengembalikan segmen ke-*n*.
SUBSTRINGMengekstrak substring berdasarkan posisi atau ekspresi reguler. Alias: SUBSTR (bentuk kompatibel Oracle).
SUBSTRMengekstrak substring dari posisi awal. Kompatibel dengan Oracle; memerlukan ekstensi orafce. Alias: SUBSTRING.
REGEXP_MATCHMencocokkan string terhadap ekspresi reguler dan mengembalikan hasil pencocokan sebagai array.
REGEXP_SPLIT_TO_TABLEMemisahkan string berdasarkan ekspresi reguler dan mengembalikan setiap segmen sebagai baris terpisah.
REGEXP_SPLIT_TO_ARRAYMemisahkan string berdasarkan ekspresi reguler dan mengembalikan segmen sebagai array.
TRIMMenghapus karakter tertentu dari salah satu atau kedua ujung string.
BTRIMMenghapus karakter tertentu dari kedua ujung string.
LTRIMMenghapus karakter tertentu dari kiri (awal) string.
RTRIMMenghapus karakter tertentu dari kanan (akhir) string.
LPADMelakukan left-padding pada string hingga panjang tertentu.
RPADMelakukan right-padding pada string hingga panjang tertentu.

Fungsi string lainnya

FunctionDescription
ASCIIMengembalikan kode ASCII dari karakter pertama.
CHAR_LENGTHMengembalikan panjang karakter dari string. Alias: LENGTH.
LENGTHMengembalikan jumlah karakter dalam string. Alias: CHAR_LENGTH.
CHRMengembalikan karakter untuk nilai kode tertentu.
INITCAPMengubah huruf pertama setiap kata menjadi kapital.
LOWERMengonversi string menjadi huruf kecil.
UPPERMengonversi string menjadi huruf kapital.
OCTET_LENGTHMengembalikan jumlah byte dalam string.
MD5Mengembalikan hash MD5 dari string dalam format heksadesimal.
POSITIONMengembalikan posisi substring dalam string. Alias: STRPOS.
STRPOSMengembalikan posisi substring dalam string. Alias: POSITION.
INSTRMengembalikan posisi substring dalam rentang tertentu dari string. Kompatibel dengan Oracle; memerlukan ekstensi orafce.
REPLACEMengganti semua kemunculan substring dengan string lain.
REGEXP_REPLACEMengganti substring yang cocok dengan ekspresi reguler POSIX.
TRANSLATEMengganti karakter individual dalam string.
REPEATMengulang string sejumlah kali tertentu.
STARTS_WITHMengembalikan true jika string diawali dengan awalan tertentu.
PARSE_IDENTMengurai string identifier SQL qualified.
QUOTE_IDENTMengembalikan string yang dikutip sebagai identifier SQL yang valid.
QUOTE_LITERALMengembalikan string yang dikutip sebagai konstanta string SQL yang valid.
TO_HEXMengonversi bilangan bulat ke representasi heksadesimalnya.
TO_NUMBERMengonversi string ke tipe numerik.
PLVSTR.RVRSMembalik string. Kompatibel dengan Oracle; memerlukan ekstensi orafce.
ROWMengembalikan nomor baris dari baris saat ini. Didukung di Hologres V1.3 dan versi lebih baru.

Konkatenasi, pemisahan, dan padding string

STRING \|\| STRING

Menggabungkan dua string.

Sintaks

<string_value1> TEXT || <string_value2> TEXT

Parameter

ParameterWajibDeskripsi
string_value1YaEkspresi string pertama.
string_value2YaEkspresi string kedua.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: HologreSQL
SELECT 'Holo' || 'greSQL';

CONCAT

Menggabungkan dua atau lebih string menjadi satu. Argumen NULL diabaikan.

Sintaks

CONCAT(<str1> TEXT, <str2> TEXT, ..., <strN> TEXT)

Parameter

ParameterWajibDeskripsi
str1, ..., strNYaString yang akan digabungkan. Nilai NULL diabaikan.

Tipe kembalian: TEXT

Contoh

SELECT CONCAT('abcde', 2, NULL, 22);

Hasil:

concat
--------
abcde222

CONCAT_WS

Menggabungkan semua argumen setelah argumen pertama, menggunakan argumen pertama sebagai pemisah.

Sintaks

CONCAT_WS(<sep> TEXT, str "any" [, str "any" [, ...]])

Tipe any menunjukkan bahwa semua tipe data diterima.

Parameter

Wajib:

sep: Pemisah yang disisipkan di antara setiap string. Jika sep bernilai NULL, fungsi mengembalikan NULL.

Opsional:

str: String yang akan digabungkan. Argumen string NULL diabaikan.

Tipe kembalian: TEXT

Contoh

SELECT CONCAT_WS(',', 'abcde', 2, NULL, 22);

Hasil:

concat_ws
----------
abcde,2,22

LISTAGG

Mengagregasi nilai dari kolom yang sama di beberapa baris menjadi satu string. Ini adalah fungsi kompatibel Oracle yang memerlukan ekstensi orafce. Untuk instruksi penyiapan, lihat Oracle-compatible functions.

Sintaks

LISTAGG(<str1> TEXT [, <str2> TEXT])

Parameter

ParameterWajibDeskripsi
str1YaKolom atau ekspresi string yang akan diagregasi.
str2TidakPemisah antar nilai yang diagregasi. Default: tanpa pemisah.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: hologres
SELECT LISTAGG(t) FROM (VALUES('holo'), ('gres')) AS l(t);
-- Mengembalikan: holo.gres
SELECT LISTAGG(t, '.') FROM (VALUES('holo'), ('gres')) AS l(t);

STRING_AGG

Mengagregasi nilai dari kolom yang sama di beberapa baris menjadi satu string.

Sintaks

STRING_AGG(expression [order_by_clause]) [FILTER (WHERE filter_clause)]
Klausa FILTER didukung di Hologres V1.3 dan versi lebih baru. Untuk melakukan upgrade instans Anda, lihat Upgrade an instance. Untuk dukungan, bergabunglah dengan grup DingTalk Hologres. Untuk instruksi, lihat How do I get more online support?.

Parameter

ParameterWajibDeskripsi
expressionYaKolom atau ekspresi yang akan diagregasi.
order_by_clauseTidakMenentukan urutan pengurutan nilai sebelum konkatenasi. Jika dihilangkan, urutan tidak dijamin.
FILTER (WHERE filter_clause)TidakMenyaring baris yang dimasukkan dalam agregasi.

Tipe kembalian: TEXT

Contoh

Contoh 1: Mengagregasi semua nama kota menjadi satu string.

CREATE TABLE city_test (
    country text,
    city text
);

INSERT INTO city_test
    VALUES ('China', 'Shanghai'), ('China', 'Taiwan'), ('Japan', 'Tokyo'), ('France', 'Paris'), ('UK', 'London');

SELECT STRING_AGG(city, ',') FROM city_test;

Hasil:

string_agg
-------------------------------
Shanghai,Taiwan,Tokyo,Paris,London

Contoh 2: Mengagregasi nama di mana student_id > 2.

CREATE TABLE name_text (
    student_id int,
    name text
);

INSERT INTO name_text
    VALUES (1, 'Zhang San'), (2, 'Li Si'), (3, 'Wang Wu'), (4, 'Zhou Liu');

SELECT STRING_AGG(name, ',') FILTER (WHERE student_id > 2) FROM name_text;

Hasil:

string_agg
-----------
Wang Wu,Zhou Liu

LEFT

Mengekstrak jumlah karakter tertentu dari awal string.

Sintaks

LEFT(<str> TEXT, <num> INT)

Parameter

ParameterWajibDeskripsi
strYaString target.
numYaJumlah karakter yang diekstrak. Jika negatif, mengembalikan semua karakter kecuali -num karakter terakhir.

Tipe kembalian: TEXT

Contoh

SELECT LEFT('hologres', 4);

Hasil:

left
----
holo

RIGHT

Mengekstrak jumlah karakter tertentu dari akhir string.

Sintaks

RIGHT(<str> TEXT, <num> INT)

Parameter

ParameterWajibDeskripsi
strYaString target.
numYaJumlah karakter yang diekstrak. Jika negatif, mengembalikan semua karakter kecuali -num karakter pertama.

Tipe kembalian: TEXT

Contoh

SELECT RIGHT('hologres', 4);

Hasil:

right
-----
gres

SPLIT_PART

Memisahkan string berdasarkan pembatas dan mengembalikan segmen ke-*n*.

Sintaks

SPLIT_PART(<str> TEXT, <delimiter> TEXT, <num> INT)

Parameter

ParameterWajibDeskripsi
strYaString target yang akan dipisahkan.
delimiterYaPembatas yang digunakan untuk pemisahan.
numYaIndeks berbasis 1 dari segmen yang akan dikembalikan.

Tipe kembalian: TEXT

Catatan penggunaan

  • Jika num lebih besar dari jumlah segmen, fungsi mengembalikan NULL.

Contoh

CREATE TABLE split_part_test (
    a text
);

INSERT INTO split_part_test VALUES ('a/b/c/d/e'), ('a1/b1/c1/d1/e1');

SELECT split_part(a, '/', 2) FROM split_part_test;

Hasil:

split_part
----------
b
b1

SUBSTRING

Mengekstrak substring dari string target. Mendukung tiga bentuk: berbasis posisi, ekspresi reguler POSIX, dan ekspresi reguler SQL.

Sintaks

Berdasarkan posisi:

SUBSTRING(<str> TEXT [FROM <num_start> INT] [FOR <num_end> INT])

Ekspresi reguler POSIX:

SUBSTRING(<str> TEXT FROM <pattern> TEXT)

Ekspresi reguler SQL:

SUBSTRING(<str> TEXT FROM <pattern> TEXT FOR <escape> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString target.
num_startTidakPosisi awal (berbasis 1). Default: 1.
num_endTidakJumlah karakter yang diekstrak. Default: hingga akhir string.
patternYa (bentuk regex)Ekspresi reguler yang dicocokkan.
escapeYa (regex SQL)Karakter escape untuk karakter khusus seperti ., *, dan +.

Tipe kembalian: TEXT

Contoh

Contoh 1: Mengekstrak substring berdasarkan posisi.

SELECT SUBSTRING('Thomas' FROM 2 FOR 3);

Hasil:

substring
---------
hom

Contoh 2: Mengekstrak substring yang cocok dengan ekspresi reguler POSIX.

SELECT SUBSTRING('Thomas' FROM '...$');

Hasil:

substring
---------
mas

Contoh 3: Mengekstrak substring yang cocok dengan ekspresi reguler SQL.

SELECT SUBSTRING('Thomas' FROM '%#"o_a#"_' FOR '#');

Hasil:

substring
---------
oma

SUBSTR

Mengekstrak substring dari posisi awal. Ini adalah fungsi kompatibel Oracle yang memerlukan ekstensi orafce. Untuk instruksi penyiapan, lihat Oracle-compatible functions.

Sintaks

Mengekstrak dari posisi awal hingga akhir:

SUBSTR(<str> TEXT, <num_start> INTEGER)

Mengekstrak substring dengan panjang tetap:

SUBSTR(<str> TEXT, <num_start> INTEGER, <len> INTEGER)

Parameter

ParameterWajibDeskripsi
strYaString target.
num_startYaPosisi awal (berbasis 1).
lenTidakJumlah karakter yang diekstrak. Default: hingga akhir string.

Tipe kembalian: TEXT

Contoh

Contoh 1: Mengekstrak dari karakter keempat hingga akhir.

-- Mengembalikan: ogres
SELECT SUBSTR('Hologres', 4);

Contoh 2: Mengekstrak lima karakter mulai dari karakter kedua.

-- Mengembalikan: ologr
SELECT SUBSTR('Hologres', 2, 5);

REGEXP_MATCH

Mencocokkan string terhadap ekspresi reguler dan mengembalikan hasil pencocokan sebagai array.

Sintaks

REGEXP_MATCH(<str> TEXT, <pattern> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString yang dicocokkan.
patternYaEkspresi reguler.

Tipe kembalian: ARRAY

Contoh

SELECT regexp_match('foobarbequebaz', '(bar)(beque)');

Hasil:

regexp_match
------------
{bar,beque}

REGEXP_SPLIT_TO_TABLE

Memisahkan string menggunakan ekspresi reguler dan mengembalikan setiap segmen sebagai baris terpisah. Gunakan fungsi ini untuk memperluas nilai yang dipisahkan menjadi baris.

Sintaks

REGEXP_SPLIT_TO_TABLE(<str> TEXT, <pattern> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString yang akan dipisahkan.
patternYaEkspresi reguler yang menentukan posisi pemisahan.

Tipe kembalian: TEXT (satu baris per segmen)

Contoh

CREATE TABLE interests_test (
    name text,
    intrests text
);

INSERT INTO interests_test
    VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping');

SELECT name, REGEXP_SPLIT_TO_TABLE(intrests, ',') FROM interests_test;

Hasil:

name      | regexp_split_to_table
----------+----------------------
Zhang San | singing
Zhang San | dancing
Li Si     | soccer
Li Si     | running
Li Si     | drawing
Wang Wu   | flower arranging
Wang Wu   | calligraphy
Wang Wu   | playing piano
Wang Wu   | sleeping

REGEXP_SPLIT_TO_ARRAY

Memisahkan string menggunakan ekspresi reguler dan mengembalikan segmen sebagai array.

Sintaks

REGEXP_SPLIT_TO_ARRAY(<str> TEXT, <pattern> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString yang akan dipisahkan.
patternYaEkspresi reguler yang menentukan posisi pemisahan.

Tipe kembalian: ARRAY

Contoh

CREATE TABLE interests_test (
    name text,
    intrests text
);

INSERT INTO interests_test
    VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping');

SELECT name, REGEXP_SPLIT_TO_ARRAY(intrests, ',') FROM interests_test;

Hasil:

name      | regexp_split_to_array
----------+----------------------------------------------------------
Zhang San | {singing,dancing}
Li Si     | {soccer,running,drawing}
Wang Wu   | {"flower arranging",calligraphy,"playing piano",sleeping}

TRIM

Menghapus karakter tertentu dari salah satu atau kedua ujung string.

Sintaks

TRIM([LEADING | TRAILING | BOTH] [<characters> TEXT] FROM <string> TEXT)

Parameter

ParameterWajibDeskripsi
LEADING | TRAILING | BOTHTidakUjung yang dipangkas. Default: BOTH.
charactersTidakSet karakter yang dihapus. Setiap karakter dicocokkan secara individual, bukan sebagai string utuh. Default: spasi.
stringYaString target.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: Tom
SELECT TRIM(BOTH 'xyz' FROM 'yxTomxx');

BTRIM

Menghapus karakter tertentu dari kedua ujung string.

Sintaks

BTRIM(<str> TEXT [, <characters> TEXT])

Parameter

ParameterWajibDeskripsi
strYaString target.
charactersTidakSet karakter yang dihapus dari kedua ujung. Setiap karakter dicocokkan secara individual, bukan sebagai string utuh. Default: spasi.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: trim
SELECT BTRIM('xyxtrimyyx', 'xyz');

LTRIM

Menghapus karakter tertentu dari kiri (awal) string.

Sintaks

LTRIM(<str> TEXT [, <characters> TEXT])

Parameter

ParameterWajibDeskripsi
strYaString target.
charactersTidakSet karakter yang dihapus dari kiri. Setiap karakter dicocokkan secara individual, bukan sebagai string utuh. Default: spasi.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: test
SELECT LTRIM('zzzytest', 'xyz');

RTRIM

Menghapus karakter tertentu dari kanan (akhir) string.

Sintaks

RTRIM(<str> TEXT [, <characters> TEXT])

Parameter

ParameterWajibDeskripsi
strYaString target.
charactersTidakSet karakter yang dihapus dari kanan. Setiap karakter dicocokkan secara individual, bukan sebagai string utuh. Default: spasi.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: test
SELECT RTRIM('testxxzx', 'xyz');

Ketika nilai DECIMAL dikonversi ke TEXT, hasilnya menyimpan nol di belakang sesuai skala yang ditentukan, misalnya 2.00 alih-alih 2. Satu panggilan RTRIM yang hanya menghapus nol akan menyisakan titik desimal:

-- Mengembalikan: 2.
SELECT RTRIM(2.00::DECIMAL::TEXT, '0');

Untuk menghapus nol di belakang beserta titik desimal sekaligus, gunakan dua panggilan RTRIM bersarang: panggilan pertama menghapus nol, dan panggilan kedua menghapus titik desimal.

-- Mengembalikan: 2
SELECT RTRIM(RTRIM(2.00::DECIMAL::TEXT, '0'), '.');

Tabel berikut membandingkan hasil kedua ekspresi tersebut untuk nilai berbeda dalam kolom DECIMAL(10,2) bernama a:

Nilai

RTRIM(a::TEXT, '0')

RTRIM(RTRIM(a::TEXT, '0'), '.')

0.00

0.

0

1.10

1.1

1.1

2.00

2.

2

3.50

3.5

3.5

10.00

10.

10

LPAD

Menambahkan karakter pengisi di sebelah kiri string hingga mencapai panjang total tertentu.

Sintaks

LPAD(<str> TEXT, <length> INT [, <fill> TEXT])

Parameter

ParameterWajibDeskripsi
strYaString target.
lengthYaPanjang total hasil. Jika str lebih panjang dari length, string dipotong dari kanan hingga panjang yang ditentukan.
fillTidakKarakter pengisi. Default: spasi.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: xyxhi
SELECT LPAD('hi', 5, 'xy');

RPAD

Menambahkan karakter pengisi di sebelah kanan string hingga mencapai panjang total tertentu.

Sintaks

RPAD(<str> TEXT, <length> INT [, <fill> TEXT])

Parameter

ParameterWajibDeskripsi
strYaString target.
lengthYaPanjang total hasil. Jika str lebih panjang dari length, string dipotong dari kanan hingga panjang yang ditentukan.
fillTidakKarakter pengisi. Default: spasi.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: hixyx
SELECT RPAD('hi', 5, 'xy');

Fungsi string lainnya

ASCII

Mengembalikan kode ASCII dari karakter pertama string.

Sintaks

ASCII(<str> TEXT)

Tipe kembalian: INTEGER

Contoh

-- Mengembalikan: 120
SELECT ASCII('x');

CHAR_LENGTH

Mengembalikan jumlah karakter dalam string. Setara dengan LENGTH.

Sintaks

LENGTH(<str> TEXT)

Tipe kembalian: INTEGER

Contoh

-- Mengembalikan: 4
SELECT CHAR_LENGTH('jose');

LENGTH

Mengembalikan jumlah karakter dalam string. Dalam encoding UTF-8, setiap karakter Tionghoa, angka, atau huruf dihitung sebagai satu karakter. Setara dengan CHAR_LENGTH.

Sintaks

LENGTH(<str> TEXT)

Tipe kembalian: INTEGER

Contoh

-- Mengembalikan: 4
SELECT LENGTH('jose');

CHR

Mengembalikan karakter yang sesuai dengan nilai kode ASCII atau Unicode tertentu.

Sintaks

CHR(<num> INT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: A
SELECT CHR(65);

INITCAP

Mengubah huruf pertama setiap kata menjadi kapital dan sisanya menjadi huruf kecil. Kata adalah rangkaian karakter alfanumerik yang dipisahkan oleh karakter non-alfanumerik.

Sintaks

INITCAP(<str> TEXT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: Hi Thomas
SELECT INITCAP('hi THOMAS');

LOWER

Mengonversi string menjadi huruf kecil.

Sintaks

LOWER(<str> TEXT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: tom
SELECT LOWER('TOM');

UPPER

Mengonversi string menjadi huruf kapital.

Sintaks

UPPER(<str> TEXT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: TOM
SELECT UPPER('tom');

OCTET_LENGTH

Mengembalikan jumlah byte dalam string.

Sintaks

OCTET_LENGTH(<str> TEXT)

Tipe kembalian: INTEGER

Contoh

-- Mengembalikan: 4
SELECT OCTET_LENGTH('jose');

MD5

Menghitung hash MD5 dari string dan mengembalikan hasilnya sebagai string heksadesimal.

Sintaks

MD5(<str> TEXT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: 900150983cd24fb0d6963f7d28e17f72
SELECT MD5('abc');

POSITION

Mengembalikan posisi awal substring dalam string. Mengembalikan 0 jika substring tidak ditemukan. Setara dengan STRPOS.

Sintaks

POSITION(<substr> TEXT IN <str> TEXT)

Parameter

ParameterWajibDeskripsi
substrYaSubstring yang dicari.
strYaString target.

Tipe kembalian: INTEGER

Contoh

-- Mengembalikan: 3
SELECT POSITION('om' IN 'Thomas');

STRPOS

Mengembalikan posisi awal substring dalam string. Mengembalikan 0 jika substring tidak ditemukan. Setara dengan POSITION.

Sintaks

STRPOS(<str> TEXT, <substr> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString target.
substrYaSubstring yang dicari.

Tipe kembalian: INTEGER

Contoh

-- Mengembalikan: 2
SELECT STRPOS('high', 'ig');

INSTR

Mengembalikan posisi substring dalam string target, dengan kontrol opsional untuk posisi awal dan kemunculan. Mengembalikan 0 jika substring tidak ditemukan. Ini adalah fungsi kompatibel Oracle yang memerlukan ekstensi orafce. Untuk instruksi penyiapan, lihat Oracle-compatible functions.

Sintaks

INSTR(<str> TEXT, <patt> TEXT [, <start> INTEGER [, <nth> INTEGER]])

Parameter

ParameterWajibDeskripsi
strYaString target.
pattYaSubstring yang dicari.
startTidakPosisi untuk mulai mencari. Default: 1 (awal string).
nthTidakKemunculan ke berapa yang dicari. Default: 1 (kemunculan pertama).

Tipe kembalian: INTEGER

Contoh

-- Mengembalikan: 4 (kemunculan kedua 'o', mencari dari posisi 1)
SELECT INSTR('Hologres', 'o', 1, 2);
-- Mengembalikan: 2 (kemunculan pertama 'o', mencari dari posisi 1)
SELECT INSTR('Hologres', 'o', 1, 1);
-- Mengembalikan: 4 (kemunculan pertama 'o' pada atau setelah posisi 4)
SELECT INSTR('Hologres', 'o', 4);
-- Mengembalikan: 2 (kemunculan pertama 'o')
SELECT INSTR('Hologres', 'o');

REPLACE

Mengganti semua kemunculan substring dalam string.

Sintaks

REPLACE(<str> TEXT, <old_str> TEXT, <new_str> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString target.
old_strYaSubstring yang diganti.
new_strYaString pengganti.

Tipe kembalian: TEXT

Contoh

CREATE TABLE animal_test (
    animal text,
    color text
);

INSERT INTO animal_test
    VALUES ('dog', 'white'), ('cat', 'white'), ('tiger', 'yellow');

SELECT animal, REPLACE(color, 'white', 'multi-colored') FROM animal_test;

Hasil:

animal | replace
-------+--------------
dog    | multi-colored
cat    | multi-colored
tiger  | yellow

REGEXP_REPLACE

Mengganti substring yang cocok dengan ekspresi reguler POSIX dengan string pengganti.

Sintaks

REGEXP_REPLACE(<str> TEXT, <regex> TEXT, <replacement> TEXT [, <flags> TEXT])

Parameter

Wajib:

ParameterDeskripsi
strString target.
regexEkspresi reguler POSIX yang dicocokkan.
replacementString pengganti.

Opsional:

flags: Satu atau beberapa karakter yang mengontrol perilaku pencocokan. Default: hanya mengganti kecocokan pertama, case-sensitive.

FlagDeskripsi
gMengganti semua kemunculan (default hanya mengganti yang pertama).
iPencocokan case-insensitive.
mMode multi-baris.
sMode single-line: . mencocokkan newline.

Tipe kembalian: TEXT

Contoh

CREATE TABLE a_test (
    a text
);

INSERT INTO a_test VALUES ('Abcd1234abCd');

SELECT REGEXP_REPLACE(a, '1234.', '77', 'ig') FROM a_test;

Hasil:

regexp_replace
--------------
Abcd77bCd

TRANSLATE

Mengganti karakter individual dalam string berdasarkan pemetaan karakter.

Sintaks

TRANSLATE(<str> TEXT, <substr> TEXT, <newstr> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString target.
substrYaSet karakter yang diganti.
newstrYaKarakter pengganti, dipetakan secara posisional ke substr. Jika newstr lebih pendek dari substr, karakter tambahan dalam substr dihapus dari hasil.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: a2x5
SELECT TRANSLATE('12345', '143', 'ax');

REPEAT

Mengulang string sejumlah kali tertentu.

Sintaks

REPEAT(<str> TEXT, <number> INT)

Parameter

ParameterWajibDeskripsi
strYaString yang diulang.
numberYaJumlah pengulangan.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: PgPgPgPg
SELECT REPEAT('Pg', 4);

STARTS_WITH

Mengembalikan true jika string diawali dengan awalan tertentu.

Sintaks

STARTS_WITH(<str> TEXT, <prefix> TEXT)

Parameter

ParameterWajibDeskripsi
strYaString target.
prefixYaAwalan yang diperiksa.

Tipe kembalian: BOOLEAN (t untuk true, f untuk false)

Contoh

-- Mengembalikan: t
SELECT STARTS_WITH('alphabet', 'alph');

PARSE_IDENT

Mengurai string identifier SQL qualified dan mengembalikan komponennya sebagai array. Komponen tanpa tanda kutip diubah menjadi huruf kecil; komponen bertanda kutip mempertahankan kapitalisasinya.

Sintaks

PARSE_IDENT(<quali_iden> TEXT)

Parameter

ParameterWajibDeskripsi
quali_idenYaIdentifier SQL qualified, seperti nama tabel fully qualified.

Tipe kembalian: TEXT (format array)

Contoh

-- Mengembalikan: {"SomeSchema","sometable"}
SELECT PARSE_IDENT('"SomeSchema".someTable');

QUOTE_IDENT

Mengembalikan string yang dikutip sebagai identifier SQL yang valid, menambahkan tanda kutip ganda bila diperlukan (misalnya, ketika string berisi spasi atau huruf kapital yang seharusnya tidak diubah menjadi huruf kecil).

Sintaks

QUOTE_IDENT(<str> TEXT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: "Foo bar"
SELECT QUOTE_IDENT('Foo bar');

QUOTE_LITERAL

Mengembalikan string yang dikutip sebagai konstanta string SQL yang valid, dengan meng-escape tanda kutip tunggal bila diperlukan.

Sintaks

QUOTE_LITERAL(<str> TEXT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: 'O''Reilly'
SELECT QUOTE_LITERAL(E'O\'Reilly');

TO_HEX

Mengonversi bilangan bulat ke representasi string heksadesimalnya.

Sintaks

TO_HEX(<number> INT | BIGINT)

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: 7fffffff
SELECT TO_HEX(2147483647);

TO_NUMBER

Mengonversi string berformat ke nilai numerik menggunakan model format.

Sintaks

TO_NUMBER(<str1> TEXT, <str2> TEXT)

Parameter

ParameterWajibDeskripsi
str1YaString yang akan dikonversi.
str2YaModel format yang menentukan cara mengurai string.

Tipe kembalian: NUMERIC

Contoh

-- Mengembalikan: -12454.8
SELECT TO_NUMBER('12,454.8-', '99G999D9S');

PLVSTR.RVRS

Membalik sebagian atau seluruh string. Ini adalah fungsi kompatibel Oracle yang memerlukan ekstensi orafce. Untuk instruksi penyiapan, lihat Oracle-compatible functions.

Sintaks

Membalik seluruh string:

PLVSTR.RVRS(<str> TEXT)

Membalik dari posisi awal hingga akhir:

PLVSTR.RVRS(<str> TEXT, <start> INTEGER)

Membalik rentang tertentu:

PLVSTR.RVRS(<str> TEXT, <start> INTEGER, <end> INTEGER)

Parameter

ParameterWajibDeskripsi
strYaString target.
startTidakPosisi awal rentang yang dibalik (berbasis 1). Default: 1.
endTidakPosisi akhir rentang yang dibalik. Default: akhir string.

Tipe kembalian: TEXT

Contoh

-- Mengembalikan: sergoloH (seluruh string dibalik)
SELECT PLVSTR.RVRS('Hologres');
-- Mengembalikan: sergo (dibalik dari posisi 4 hingga akhir)
SELECT PLVSTR.RVRS('Hologres', 4);
-- Mengembalikan: rg (posisi 5-6 dibalik)
SELECT PLVSTR.RVRS('Hologres', 5, 6);

ROW

Mengembalikan nomor baris dari baris saat ini. Didukung di Hologres V1.3 dan versi lebih baru.

Untuk melakukan upgrade instans Anda ke V1.3 atau versi lebih baru, lihat Upgrade an instance. Untuk dukungan, bergabunglah dengan grup DingTalk Hologres. Untuk instruksi, lihat How do I get more online support?.

Sintaks

ROW(<val1>, <val2>, ...)

Tipe kembalian: ARRAY atau TEXT

Contoh

Contoh berikut mengembalikan baris di mana kolom a dan kolom b memiliki nilai yang sama.

CREATE TABLE row_test (
    a text,
    b text
);

INSERT INTO row_test VALUES ('0', '0'), ('1', '0');

SELECT a, b FROM row_test WHERE ROW(a, b) = ROW(b, a);

Hasil:

a | b
--+--
0 | 0