INTEGRITY Dokumentace

Řetězcové funkce

délka

Použití:

length({string})

Vrací délku řetězce. Tato funkce je kompatibilní s UTF-8.

Příklady:

SELECT length('a string') AS s;
SELECT length(blob1) AS s FROM your_dataset;

Kvůli zpětné kompatibilitě je tato funkce ekvivalentní funkci v ClickHouse lengthUTF8 funkci, a ne funkci ClickHouse length .

empty

Použití:

empty({string})

Vrací booleovskou hodnotu udávající, zda byl řetězec prázdný. Tento výpočet lze provést i jako binární operaci: {string} = ''.

Příklady:

SELECT empty('a string') AS b;
SELECT empty(blob1) AS b FROM your_dataset;

Kvůli zpětné kompatibilitě lze tuto funkci volat také pomocí empty(<string>).

lower

Použití:

lower({string})

Vrací řetězec převedený na malá písmena. Tato funkce NENÍ kompatibilní s Unicode, viz lowerUTF8 pro to.

Příklady:

SELECT lower('STRING TO DOWNCASE') AS s;
SELECT lower(blob1) AS s FROM your_dataset;

lowerUTF8 New

Použití:

lowerUTF8({string})

Vrací řetězec převedený na malá písmena. Tato funkce je kompatibilní s Unicode. Výsledek nemusí být dokonalý pro všechny jazyky, uživatelé s přísnějšími požadavky by měli tuto operaci provést ve vlastním kódu.

Příklady:

SELECT lowerUTF8('STRING TO DOWNCASE') AS s;
SELECT lowerUTF8(blob1) AS s FROM your_dataset;

Kvůli zpětné kompatibilitě lze tuto funkci volat také pomocí toLower({string}).

upper

Použití:

upper({string})

Vrací řetězec převedený na velká písmena. Tato funkce NENÍ kompatibilní s Unicode, viz upperUTF8 pro to.

Příklady:

SELECT upper('string to uppercase') AS s;
SELECT upper(blob1) AS s FROM your_dataset;

upperUTF8 New

Použití:

upperUTF8({string})

Vrací řetězec převedený na velká písmena. Tato funkce je kompatibilní s Unicode. Výsledky nemusí být dokonalé pro všechny jazyky, uživatelé s přísnými požadavky by měli tuto operaci provést ve vlastním kódu.

Příklady:

SELECT upperUTF8('string to uppercase') AS s;
SELECT upperUTF8(blob1) AS s FROM your_dataset;

Kvůli zpětné kompatibilitě lze tuto funkci volat také pomocí toUpper({string}).

startsWith

Použití:

startsWith({string}, {string})

Vrací booleovskou hodnotu podle toho, zda první řetězec na začátku obsahuje druhý řetězec.

Příklady:

SELECT startsWith('prefix ...', 'prefix') AS b;
SELECT startsWith(blob1, 'prefix') AS b FROM your_dataset;

endsWith

Použití:

endsWith({string}, {string})

Vrací booleovskou hodnotu podle toho, zda první řetězec na konci obsahuje druhý řetězec.

Příklady:

SELECT endsWith('prefix suffix', 'suffix') AS b;
SELECT endsWith(blob1, 'suffix') AS b FROM your_dataset;

position

Použití:

position({needle:string} IN {haystack:string})

Vrací pozici jednoho řetězce, needle, v jiné pak haystack. V SQL se indexy obvykle číslují od 1. To znamená, že position vrací 1 pokud se hledaný řetězec nachází na začátku prohledávaného řetězce. Vrací pouze 0 pokud řetězec nebyl nalezen.

Příklady:

SELECT position(':' IN 'hello: world') AS p;
SELECT position(':' IN blob1) AS p FROM your_dataset;

podřetězec

Použití:

substring({string}, {offset:integer}[. {length:integer}])

Extrahuje část řetězce počínaje bodem kódu Unicode určeným parametrem offset a vrací počet bodů kódu zadaný parametrem length. Jak již bylo zmíněno, indexy v SQL se obvykle číslují od 1. To znamená, že hodnota offset předaná funkci substring by měla být alespoň 1.

Příklady:

SELECT substring('hello world', 6) AS s;
SELECT substring('hello: world', 1, position(':' IN 'hello: world')-1) AS s;

format

Použití:

format({string}[, ...])

Tato funkce podporuje formátování řetězců, celých čísel, čísel s plovoucí desetinnou čárkou, dat a časů, intervalů atd., kromě NULL. Tato funkce nepodporuje literál { a } znaky ve formátovacím řetězci.

Příklady:

SELECT format('blob1: {}', blob1) AS s FROM dataset;

formatDateTime funkce může být také užitečná.

extract

Použití:

extract(<time unit> from <datetime>)

extract vrací celočíselný počet časových jednotek z data a času. Podporuje YEAR, MONTH, DAY, HOUR, MINUTE a SECOND.

Příklady:

-- extract the number of seconds from a timestamp (returns 15 in this example)
extract(SECOND from toDateTime('2022-06-06 11:30:15'))