Tüm Ürünler
Search
Belge Merkezi

Hologres:String functions

Son Güncelleme:Oct 06, 2026

Hologres aşağıdaki dize işlevlerini destekler. PostgreSQL ile uyumlu tüm dize işlevlerinin tam listesi için bkz. PostgreSQL İşlevleri.

İşlev dizini

Dize birleştirme, ayırma ve doldurma

İşlev Açıklama
STRING || STRING İki dizeyi birleştirir.
CONCAT NULL bağımsız değişkenleri yoksayarak iki veya daha fazla dizeyi birleştirir.
CONCAT_WS NULL dize bağımsız değişkenlerini yoksayarak dizeleri bir ayırıcı ile birleştirir.
LISTAGG Sütun değerlerini satırlar boyunca tek bir dizede toplar. Oracle uyumludur; orafce uzantısını gerektirir.
STRING_AGG Sütun değerlerini satırlar boyunca tek bir dizede toplar.
LEFT Bir dizenin başından karakterler ayıklar.
RIGHT Bir dizenin sonundan karakterler ayıklar.
SPLIT_PART Bir dizeyi bir ayırıcıya göre böler ve n. parçayı döndürür.
SUBSTRING Konuma veya düzenli ifadeye göre bir alt dize ayıklar. Takma ad: SUBSTR (Oracle uyumlu form).
SUBSTR Başlangıç konumundan bir alt dize ayıklar. Oracle uyumludur; orafce uzantısını gerektirir. Takma ad: SUBSTRING.
REGEXP_MATCH Bir dizeyi düzenli ifadeyle eşleştirir ve eşleşmeleri bir dizi olarak döndürür.
REGEXP_SPLIT_TO_TABLE Bir dizeyi düzenli ifadeye göre böler ve her parçayı bir satır olarak döndürür.
REGEXP_SPLIT_TO_ARRAY Bir dizeyi düzenli ifadeye göre böler ve parçaları bir dizi olarak döndürür.
TRIM Belirtilen karakterleri bir dizenin bir veya her iki ucundan kaldırır.
BTRIM Belirtilen karakterleri bir dizenin her iki ucundan kaldırır.
LTRIM Belirtilen karakterleri bir dizenin solundan (başından) kaldırır.
RTRIM Belirtilen karakterleri bir dizenin sağından (sonundan) kaldırır.
LPAD Bir dizeyi belirtilen uzunluğa kadar soldan doldurur.
RPAD Bir dizeyi belirtilen uzunluğa kadar sağdan doldurur.

Diğer dize işlevleri

İşlev Açıklama
ASCII İlk karakterin ASCII kodunu döndürür.
CHAR_LENGTH Bir dizenin karakter uzunluğunu döndürür. Takma ad: LENGTH.
LENGTH Bir dizedeki karakter sayısını döndürür. Takma ad: CHAR_LENGTH.
CHR Belirtilen kod değeri için karakteri döndürür.
INITCAP Her kelimenin ilk harfini büyük harfe çevirir.
LOWER Bir dizeyi küçük harfe çevirir.
UPPER Bir dizeyi büyük harfe çevirir.
OCTET_LENGTH Bir dizedeki bayt sayısını döndürür.
MD5 Bir dizenin MD5 karmasını onaltılık biçimde döndürür.
POSITION Bir alt dizenin bir dize içindeki konumunu döndürür. Takma ad: STRPOS.
STRPOS Bir alt dizenin bir dize içindeki konumunu döndürür. Takma ad: POSITION.
INSTR Bir alt dizenin bir dizenin belirli bir aralığındaki konumunu döndürür. Oracle uyumludur; orafce uzantısını gerektirir.
REPLACE Bir alt dizenin tüm oluşumlarını başka bir dizeyle değiştirir.
REGEXP_REPLACE POSIX düzenli ifadesiyle eşleşen alt dizeleri değiştirir.
TRANSLATE Bir dizedeki tekil karakterleri değiştirir.
REPEAT Bir dizeyi belirtilen sayıda tekrarlar.
STARTS_WITH Bir dize belirtilen önekle başlıyorsa true döndürür.
PARSE_IDENT Nitelikli bir SQL tanımlayıcı dizesini ayrıştırır.
QUOTE_IDENT Geçerli bir SQL tanımlayıcısı olarak tırnak içine alınmış bir dize döndürür.
QUOTE_LITERAL Geçerli bir SQL dize sabiti olarak tırnak içine alınmış bir dize döndürür.
TO_HEX Bir tamsayıyı onaltılık gösterimine dönüştürür.
TO_NUMBER Bir dizeyi sayısal türe dönüştürür.
PLVSTR.RVRS Bir dizeyi tersine çevirir. Oracle uyumludur; orafce uzantısını gerektirir.
ROW Geçerli satırın satır numarasını döndürür. Hologres V1.3 ve sonraki sürümlerde desteklenir.

Dize birleştirme, ayırma ve doldurma

STRING \|\| STRING

İki dizeyi birleştirir.

Sözdizimi

<string_value1> TEXT || <string_value2> TEXT

Parametreler

Parametre Zorunlu Açıklama
string_value1 Evet İlk dize ifadesi.
string_value2 Evet İkinci dize ifadesi.

Dönüş türü: TEXT

Örnek

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

CONCAT

İki veya daha fazla dizeyi tek bir dizede birleştirir. NULL bağımsız değişkenler yoksayılır.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str1, ..., strN Evet Birleştirilecek dizeler. NULL değerler yoksayılır.

Dönüş türü: TEXT

Örnek

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

Sonuç:

concat
--------
abcde222

CONCAT_WS

İlk bağımsız değişkeni ayırıcı olarak kullanarak sonraki tüm bağımsız değişkenleri birleştirir.

Sözdizimi

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

any türü, tüm veri türlerinin kabul edildiğini belirtir.

Parametreler

Zorunlu:

sep: Her dize arasına eklenecek ayırıcı. sep NULL ise işlev NULL döndürür.

İsteğe bağlı:

str: Birleştirilecek dizeler. NULL dize bağımsız değişkenleri yoksayılır.

Dönüş türü: TEXT

Örnek

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

Sonuç:

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

LISTAGG

Birden çok satırdaki aynı sütunun değerlerini tek bir dizede toplar. Bu, orafce uzantısını gerektiren Oracle uyumlu bir işlevdir. Kurulum talimatları için bkz. Oracle uyumlu işlevler.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str1 Evet Toplanacak sütun veya dize ifadesi.
str2 Hayır Toplanan değerler arasındaki ayırıcı. Varsayılan: ayırıcı yok.

Dönüş türü: TEXT

Örnekler

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

STRING_AGG

Birden çok satırdaki aynı sütunun değerlerini tek bir dizede toplar.

Sözdizimi

STRING_AGG(expression [order_by_clause]) [FILTER (WHERE filter_clause)]
FILTER yan tümcesi Hologres V1.3 ve sonraki sürümlerde desteklenir. Örneğinizi yükseltmek için bkz. Örnek yükseltme . Destek için Hologres DingTalk grubuna katılın. Talimatlar için bkz. Daha fazla çevrimiçi desteği nasıl alabilirim? .

Parametreler

Parametre Zorunlu Açıklama
expression Evet Toplanacak sütun veya ifade.
order_by_clause Hayır Birleştirmeden önce değerlerin sıralama düzenini tanımlar. Atlanırsa sıra garanti edilmez.
FILTER (WHERE filter_clause) Hayır Toplamaya dahil edilen satırları filtreler.

Dönüş türü: TEXT

Örnekler

Örnek 1: Tüm şehir adlarını tek bir dizede toplayın.

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;

Sonuç:

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

Örnek 2: student_id > 2 koşulunu sağlayan adları toplayın.

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;

Sonuç:

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

LEFT

Bir dizenin başından belirtilen sayıda karakter ayıklar.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
num Evet Ayıklanacak karakter sayısı. Negatif ise son -num karakter hariç tüm karakterleri döndürür.

Dönüş türü: TEXT

Örnek

SELECT LEFT('hologres', 4);

Sonuç:

left
----
holo

RIGHT

Bir dizenin sonundan belirtilen sayıda karakter ayıklar.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
num Evet Ayıklanacak karakter sayısı. Negatif ise ilk -num karakter hariç tüm karakterleri döndürür.

Dönüş türü: TEXT

Örnek

SELECT RIGHT('hologres', 4);

Sonuç:

right
-----
gres

SPLIT_PART

Bir dizeyi bir ayırıcıya göre böler ve n. parçayı döndürür.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Bölünecek hedef dize.
delimiter Evet Bölme için kullanılan ayırıcı.
num Evet Döndürülecek parçanın 1 tabanlı dizini.

Dönüş türü: TEXT

Kullanım notları

  • num parça sayısından büyükse işlev NULL döndürür.

Örnek

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;

Sonuç:

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

SUBSTRING

Hedef dizeden bir alt dize ayıklar. Konum tabanlı, POSIX düzenli ifadesi ve SQL düzenli ifadesi olmak üzere üç formu destekler.

Sözdizimi

Konum tabanlı:

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

POSIX düzenli ifadesi:

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

SQL düzenli ifadesi:

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
num_start Hayır Başlangıç konumu (1 tabanlı). Varsayılan: 1.
num_end Hayır Ayıklanacak karakter sayısı. Varsayılan: dizenin sonuna kadar.
pattern Evet (düzenli ifade formları) Eşleştirilecek düzenli ifade.
escape Evet (SQL düzenli ifadesi) ., * ve + gibi özel karakterler için kaçış karakteri.

Dönüş türü: TEXT

Örnekler

Örnek 1: Konuma göre alt dize ayıklayın.

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

Sonuç:

substring
---------
hom

Örnek 2: POSIX düzenli ifadesiyle eşleşen alt dizeyi ayıklayın.

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

Sonuç:

substring
---------
mas

Örnek 3: SQL düzenli ifadesiyle eşleşen alt dizeyi ayıklayın.

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

Sonuç:

substring
---------
oma

SUBSTR

Başlangıç konumundan bir alt dize ayıklar. Bu, orafce uzantısını gerektiren Oracle uyumlu bir işlevdir. Kurulum talimatları için bkz. Oracle uyumlu işlevler.

Sözdizimi

Başlangıç konumundan sona kadar ayıkla:

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

Sabit uzunlukta alt dize ayıkla:

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
num_start Evet Başlangıç konumu (1 tabanlı).
len Hayır Ayıklanacak karakter sayısı. Varsayılan: dizenin sonuna kadar.

Dönüş türü: TEXT

Örnekler

Örnek 1: Dördüncü karakterden sona kadar ayıklayın.

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

Örnek 2: İkinci karakterden başlayarak beş karakter ayıklayın.

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

REGEXP_MATCH

Bir dizeyi düzenli ifadeyle eşleştirir ve eşleşmeleri bir dizi olarak döndürür.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Eşleştirilecek dize.
pattern Evet Düzenli ifade.

Dönüş türü: ARRAY

Örnek

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

Sonuç:

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

REGEXP_SPLIT_TO_TABLE

Bir dizeyi düzenli ifade kullanarak böler ve her parçayı ayrı bir satır olarak döndürür. Sınırlarla ayrılmış değerleri satırlara genişletmek için bu işlevi kullanın.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Bölünecek dize.
pattern Evet Bölme konumlarını belirleyen düzenli ifade.

Dönüş türü: TEXT (parça başına bir satır)

Örnek

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;

Sonuç:

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

Bir dizeyi düzenli ifade kullanarak böler ve parçaları bir dizi olarak döndürür.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Bölünecek dize.
pattern Evet Bölme konumlarını belirleyen düzenli ifade.

Dönüş türü: ARRAY

Örnek

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;

Sonuç:

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

TRIM

Belirtilen karakterleri bir dizenin bir veya her iki ucundan kaldırır.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
LEADING | TRAILING | BOTH Hayır Kırpılacak uç(lar). Varsayılan: BOTH.
characters Hayır Kaldırılacak karakter kümesi. Her karakter bir bütün dize olarak değil, tek tek eşleştirilir. Varsayılan: boşluk.
string Evet Hedef dize.

Dönüş türü: TEXT

Örnek

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

BTRIM

Belirtilen karakterleri bir dizenin her iki ucundan kaldırır.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
characters Hayır Her iki uçtan kaldırılacak karakter kümesi. Her karakter bir bütün dize olarak değil, tek tek eşleştirilir. Varsayılan: boşluk.

Dönüş türü: TEXT

Örnek

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

LTRIM

Belirtilen karakterleri bir dizenin solundan (başından) kaldırır.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
characters Hayır Soldan kaldırılacak karakter kümesi. Her karakter bir bütün dize olarak değil, tek tek eşleştirilir. Varsayılan: boşluk.

Dönüş türü: TEXT

Örnek

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

RTRIM

Belirtilen karakterleri bir dizenin sağından (sonundan) kaldırır.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
characters Hayır Sağdan kaldırılacak karakter kümesi. Her karakter bir bütün dize olarak değil, tek tek eşleştirilir. Varsayılan: boşluk.

Dönüş türü: TEXT

Örnek

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

Bir DECIMAL değeri TEXT türüne dönüştürüldüğünde sonuç, ölçeği tarafından tanımlanan sondaki sıfırları korur; örneğin 2 yerine 2.00 döner. Yalnızca sıfırları kaldıran tek bir RTRIM çağrısı ondalık noktayı geride bırakır:

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

Sondaki sıfırları ve ondalık noktayı birlikte kaldırmak için iki RTRIM çağrısını iç içe kullanın: ilk çağrı sıfırları, ikinci çağrı ondalık noktayı kaldırır.

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

Aşağıdaki tabloda, a adlı DECIMAL(10,2) sütunundaki farklı değerler için iki ifadenin sonuçları karşılaştırılmaktadır:


Değer


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

Bir dizeyi belirtilen toplam uzunluğa kadar bir doldurma karakteriyle soldan doldurur.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
length Evet Sonucun toplam uzunluğu. str length değerinden uzunsa dize belirtilen uzunluğa sağdan kısaltılır.
fill Hayır Doldurma karakteri. Varsayılan: boşluk.

Dönüş türü: TEXT

Örnek

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

RPAD

Bir dizeyi belirtilen toplam uzunluğa kadar bir doldurma karakteriyle sağdan doldurur.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
length Evet Sonucun toplam uzunluğu. str length değerinden uzunsa dize belirtilen uzunluğa sağdan kısaltılır.
fill Hayır Doldurma karakteri. Varsayılan: boşluk.

Dönüş türü: TEXT

Örnek

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

Diğer dize işlevleri

ASCII

Bir dizenin ilk karakterinin ASCII kodunu döndürür.

Sözdizimi

ASCII(<str> TEXT)

Dönüş türü: INTEGER

Örnek

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

CHAR_LENGTH

Bir dizedeki karakter sayısını döndürür. LENGTH ile eşdeğerdir.

Sözdizimi

CHAR_LENGTH(<str> TEXT)

Dönüş türü: INTEGER

Örnek

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

LENGTH

Bir dizedeki karakter sayısını döndürür. UTF-8 kodlamasında her Çince karakter, rakam veya harf bir karakter olarak sayılır. CHAR_LENGTH ile eşdeğerdir.

Sözdizimi

LENGTH(<str> TEXT)

Dönüş türü: INTEGER

Örnek

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

CHR

Belirtilen ASCII veya Unicode kod değerine karşılık gelen karakteri döndürür.

Sözdizimi

CHR(<num> INT)

Dönüş türü: TEXT

Örnek

-- Returns: A
SELECT CHR(65);

INITCAP

Her kelimenin ilk harfini büyük, geri kalanını küçük harfe çevirir. Kelimeler, alfasayısal olmayan karakterlerle ayrılan alfasayısal karakter dizileridir.

Sözdizimi

INITCAP(<str> TEXT)

Dönüş türü: TEXT

Örnek

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

LOWER

Bir dizeyi küçük harfe çevirir.

Sözdizimi

LOWER(<str> TEXT)

Dönüş türü: TEXT

Örnek

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

UPPER

Bir dizeyi büyük harfe çevirir.

Sözdizimi

UPPER(<str> TEXT)

Dönüş türü: TEXT

Örnek

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

OCTET_LENGTH

Bir dizedeki bayt sayısını döndürür.

Sözdizimi

OCTET_LENGTH(<str> TEXT)

Dönüş türü: INTEGER

Örnek

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

MD5

Bir dizenin MD5 karmasını hesaplar ve sonucu onaltılık dize olarak döndürür.

Sözdizimi

MD5(<str> TEXT)

Dönüş türü: TEXT

Örnek

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

POSITION

Bir alt dizenin bir dize içindeki başlangıç konumunu döndürür. Alt dize bulunamazsa 0 döndürür. STRPOS ile eşdeğerdir.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
substr Evet Aranacak alt dize.
str Evet Hedef dize.

Dönüş türü: INTEGER

Örnek

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

STRPOS

Bir alt dizenin bir dize içindeki başlangıç konumunu döndürür. Alt dize bulunamazsa 0 döndürür. POSITION ile eşdeğerdir.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
substr Evet Aranacak alt dize.

Dönüş türü: INTEGER

Örnek

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

INSTR

Bir alt dizenin hedef dize içindeki konumunu isteğe bağlı başlangıç konumu ve oluşum kontrolüyle döndürür. Alt dize bulunamazsa 0 döndürür. Bu, orafce uzantısını gerektiren Oracle uyumlu bir işlevdir. Kurulum talimatları için bkz. Oracle uyumlu işlevler.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
patt Evet Aranacak alt dize.
start Hayır Aramanın başlatılacağı konum. Varsayılan: 1 (dizenin başı).
nth Hayır Bulunacak oluşum sırası. Varsayılan: 1 (ilk oluşum).

Dönüş türü: INTEGER

Örnekler

-- Returns: 4 (second occurrence of 'o', searching from position 1)
SELECT INSTR('Hologres', 'o', 1, 2);
-- Returns: 2 (first occurrence of 'o', searching from position 1)
SELECT INSTR('Hologres', 'o', 1, 1);
-- Returns: 4 (first occurrence of 'o' at or after position 4)
SELECT INSTR('Hologres', 'o', 4);
-- Returns: 2 (first occurrence of 'o')
SELECT INSTR('Hologres', 'o');

REPLACE

Bir dize içindeki bir alt dizenin tüm oluşumlarını değiştirir.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
old_str Evet Değiştirilecek alt dize.
new_str Evet Yerine konacak dize.

Dönüş türü: TEXT

Örnek

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;

Sonuç:

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

REGEXP_REPLACE

POSIX düzenli ifadesiyle eşleşen alt dizeleri bir değiştirme dizesiyle değiştirir.

Sözdizimi

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

Parametreler

Zorunlu:

Parametre Açıklama
str Hedef dize.
regex Eşleştirilecek POSIX düzenli ifadesi.
replacement Değiştirme dizesi.

İsteğe bağlı:

flags: Eşleme davranışını kontrol eden bir veya daha fazla karakter. Varsayılan: yalnızca ilk eşleşmeyi değiştirir, büyük/küçük harf duyarlıdır.

Bayrak Açıklama
g Tüm oluşumları değiştirir (varsayılan yalnızca ilkini değiştirir).
i Büyük/küçük harf duyarsız eşleme.
m Çok satırlı mod.
s Tek satırlı mod: . yeni satırlarla eşleşir.

Dönüş türü: TEXT

Örnek

CREATE TABLE a_test (
    a text
);

INSERT INTO a_test VALUES ('Abcd1234abCd');

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

Sonuç:

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

TRANSLATE

Bir karakter eşlemesine dayalı olarak bir dizedeki tekil karakterleri değiştirir.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
substr Evet Değiştirilecek karakter kümesi.
newstr Evet substr parametresine konumsal olarak eşlenen değiştirme karakterleri. newstr substr parametresinden kısa ise substr içindeki fazla karakterler sonuçtan silinir.

Dönüş türü: TEXT

Örnek

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

REPEAT

Bir dizeyi belirtilen sayıda tekrarlar.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Tekrarlanacak dize.
number Evet Tekrar sayısı.

Dönüş türü: TEXT

Örnek

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

STARTS_WITH

Bir dize belirtilen önekle başlıyorsa true döndürür.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
prefix Evet Kontrol edilecek önek.

Dönüş türü: BOOLEAN (true için t, false için f)

Örnek

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

PARSE_IDENT

Nitelikli bir SQL tanımlayıcı dizesini ayrıştırır ve bileşenlerini bir dizi olarak döndürür. Tırnaksız bileşenler küçük harfe dönüştürülür; tırnaklı bileşenler büyük/küçük harf durumunu korur.

Sözdizimi

PARSE_IDENT(<quali_iden> TEXT)

Parametreler

Parametre Zorunlu Açıklama
quali_iden Evet Tam nitelikli tablo adı gibi nitelikli bir SQL tanımlayıcısı.

Dönüş türü: TEXT (dizi biçimi)

Örnek

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

QUOTE_IDENT

Dizeyi geçerli bir SQL tanımlayıcısı olarak tırnak içine alır; gerekli olduğunda (örneğin dize boşluk içeriyorsa veya aksi takdirde küçük harfe dönüştürülecek büyük harfler varsa) çift tırnak ekler.

Sözdizimi

QUOTE_IDENT(<str> TEXT)

Dönüş türü: TEXT

Örnek

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

QUOTE_LITERAL

Dizeyi geçerli bir SQL dize sabiti olarak tırnak içine alır ve gerektiğinde tek tırnakları kaçış karakterleriyle işler.

Sözdizimi

QUOTE_LITERAL(<str> TEXT)

Dönüş türü: TEXT

Örnek

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

TO_HEX

Bir tamsayıyı onaltılık dize gösterimine dönüştürür.

Sözdizimi

TO_HEX(<number> INT | BIGINT)

Dönüş türü: TEXT

Örnek

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

TO_NUMBER

Biçimli bir dizeyi bir biçim modeli kullanarak sayısal değere dönüştürür.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
str1 Evet Dönüştürülecek dize.
str2 Evet Dizenin nasıl ayrıştırılacağını tanımlayan biçim modeli.

Dönüş türü: NUMERIC

Örnek

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

PLVSTR.RVRS

Bir dizenin tamamını veya bir bölümünü tersine çevirir. Bu, orafce uzantısını gerektiren Oracle uyumlu bir işlevdir. Kurulum talimatları için bkz. Oracle uyumlu işlevler.

Sözdizimi

Tüm dizeyi tersine çevir:

PLVSTR.RVRS(<str> TEXT)

Başlangıç konumundan sona kadar tersine çevir:

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

Belirtilen aralığı tersine çevir:

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

Parametreler

Parametre Zorunlu Açıklama
str Evet Hedef dize.
start Hayır Tersine çevrilecek aralığın başlangıç konumu (1 tabanlı). Varsayılan: 1.
end Hayır Tersine çevrilecek aralığın bitiş konumu. Varsayılan: dizenin sonu.

Dönüş türü: TEXT

Örnekler

-- Returns: sergoloH (entire string reversed)
SELECT PLVSTR.RVRS('Hologres');
-- Returns: sergo (reversed from position 4 to end)
SELECT PLVSTR.RVRS('Hologres', 4);
-- Returns: rg (positions 5-6 reversed)
SELECT PLVSTR.RVRS('Hologres', 5, 6);

ROW

Geçerli satırın satır numarasını döndürür. Hologres V1.3 ve sonraki sürümlerde desteklenir.

Örneğinizi V1.3 veya sonraki bir sürüme yükseltmek için bkz. Örnek yükseltme . Destek için Hologres DingTalk grubuna katılın. Talimatlar için bkz. Daha fazla çevrimiçi desteği nasıl alabilirim? .

Sözdizimi

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

Dönüş türü: ARRAY veya TEXT

Örnek

Aşağıdaki örnek, a sütunu ile b sütununun eşit değerlere sahip olduğu satırları döndürür.

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);

Sonuç:

a | b
--+--
0 | 0