Sdílet prostřednictvím


Řetězcové funkce

Následující tabulka uvádí funkce pro manipulaci s řetězci. Aplikace může určit, které řetězcové funkce ovladač podporuje, voláním SQLGetInfo s typ informací SQL_STRING_FUNCTIONS.

Poznámky

Argumenty označené jako string_exp mohou být názvem sloupce, řetězcový literálznaku nebo výsledek jiné skalární funkce, kde může být podkladový datový typ reprezentován jako SQL_CHAR, SQL_VARCHAR nebo SQL_LONGVARCHAR.

Argumenty označené jako character_exp jsou řetězec znaků s proměnnou délkou.

Argumenty označené jako počáteční, délkanebo počet mohou být číselný literál nebo výsledek jiné skalární funkce, kde může být podkladový datový typ reprezentován jako SQL_TINYINT, SQL_SMALLINT nebo SQL_INTEGER.

Zde uvedené řetězcové funkce jsou založené na 1; to znamená, že první znak v řetězci je znak 1.

V rozhraní ODBC 3.0 byly přidány BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, OCTET_LENGTH a POSITION skalární skalární funkce, které odpovídají jazyku SQL-92.

Funkce Popis
ASCII(string_exp) (ODBC 1.0) Vrátí hodnotu kódu ASCII znaku úplně vlevo string_exp jako celé číslo.
BIT_LENGTH(string_exp) (ODBC 3.0) Vrátí délku v bitech řetězcového výrazu.

Nefunguje pouze u datových typů řetězců, proto nebude implicitně převádět string_exp na řetězec, ale místo toho vrátí (interní) velikost libovolného datového typu, který je zadaný.
CHAR(kód) (ODBC 1.0) Vrátí znak, který má hodnotu kódu ASCII určenou kód. Hodnota kódu by měla být v rozmezí od 0 do 255; v opačném případě je návratová hodnota závislá na zdroji dat.
CHAR_LENGTH(string_exp) (ODBC 3.0) Vrátí délku znaků řetězcového výrazu, pokud je řetězcový výraz datový typ znaku; v opačném případě vrátí délku v bajtech řetězcového výrazu (nejmenší celé číslo není menší než počet bitů dělený číslem 8). (Tato funkce je stejná jako funkce CHARACTER_LENGTH.)
CHARACTER_LENGTH(string_exp) (ODBC 3.0) Vrátí délku znaků řetězcového výrazu, pokud je řetězcový výraz datový typ znaku; v opačném případě vrátí délku v bajtech řetězcového výrazu (nejmenší celé číslo není menší než počet bitů dělený číslem 8). (Tato funkce je stejná jako funkce CHAR_LENGTH.)
CONCAT(string_exp1,string_exp2) (ODBC 1.0) Vrátí řetězec znaku, který je výsledkem zřetězení string_exp2 na string_exp1. Výsledný řetězec je závislý na DBMS. Pokud například sloupec reprezentovaný string_exp1 obsahoval hodnotu NULL, vrátí db2 hodnotu NULL, ale SQL Server vrátí řetězec, který není null.
DIFFERENCE(string_exp1,string_exp2) (ODBC 2.0) Vrátí celočíselnou hodnotu, která označuje rozdíl mezi hodnotami vrácenými funkcí SOUNDEX pro string_exp1 a string_exp2.
INSERT(string_exp1, začátek, délka, string_exp2) (ODBC 1.0) Vrátí řetězec znaků, ve kterém délka znaků byla odstraněna z string_exp1, počínaje počátečníma kde string_exp2 byla vložena do string_exp, počínaje počátečním.
LCASE(string_exp) (ODBC 1.0) Vrátí řetězec, který je roven v string_exp, se všemi velkými znaky převedenými na malá písmena.
LEFT(string_exp; počet) (ODBC 1.0) Vrátí nejvíce počet znaků string_exp.
LENGTH(string_exp) (ODBC 1.0) Vrátí počet znaků v string_exp s výjimkou koncových prázdných znaků.

LENGTH přijímá pouze řetězce. Proto implicitně převede string_exp na řetězec a vrátí délku tohoto řetězce (nikoli interní velikost datového typu).
NAJÍT(string_exp1; string_exp2[; spustit]) (ODBC 1.0) Vrátí počáteční pozici prvního výskytu string_exp1 v string_exp2. Hledání prvního výskytu string_exp1 začíná první pozicí znaku v string_exp2, pokud není zadán volitelný argument, počáteční. Pokud je zadán počáteční, začíná hledání umístěním znaku označenou hodnotou zahájení. První pozice znaku v string_exp2 je označena hodnotou 1. Pokud se v string_exp2nenajde string_exp1, vrátí se hodnota 0.

Pokud aplikace může volat skalární funkci NAJÍT s string_exp1, string_exp2a spustit argumenty, ovladač vrátí SQL_FN_STR_LOCATE při volání SQLGetInfo s možností SQL_STRING_FUNCTIONS. Pokud aplikace může volat skalární funkci NAJÍT pouze s argumenty string_exp1 a string_exp2, ovladač vrátí SQL_FN_STR_LOCATE_2 při volání SQLGetInfo s option SQL_STRING_FUNCTIONS. Ovladače, které podporují volání funkce NAJÍT se dvěma nebo třemi argumenty, vrátí SQL_FN_STR_LOCATE i SQL_FN_STR_LOCATE_2.
LTRIM(string_exp) (ODBC 1.0) Vrátí znaky string_exps odebranými počátečními mezerami.
OCTET_LENGTH(string_exp) (ODBC 3.0) Vrátí délku v bajtech řetězcového výrazu. Výsledkem je nejmenší celé číslo, které není menší než počet bitů dělený číslem 8.

Nefunguje pouze u datových typů řetězců, proto nebude implicitně převádět string_exp na řetězec, ale místo toho vrátí (interní) velikost libovolného datového typu, který je zadaný.
POSITION(character_expINcharacter_exp) (ODBC 3.0) Vrátí pozici prvního znakového výrazu ve druhém znakovém výrazu. Výsledkem je přesná číselná hodnota s přesností definovanou implementací a měřítkem 0.
REPEAT(string_exp; počet) (ODBC 1.0) Vrátí řetězec znaku složený z string_exp opakovaných počtu krát.
REPLACE(string_exp1, string_exp2, string_exp3) (ODBC 1.0) Vyhledejte string_exp1 výskyty string_exp2a nahraďte string_exp3.
RIGHT(string_exp, počet) (ODBC 1.0) Vrátí nejvíce počet znaků string_exp.
RTRIM(string_exp) (ODBC 1.0) Vrátí znaky string_exp s odebranými koncovými prázdnými hodnotami.
SOUNDEX(string_exp) (ODBC 2.0) Vrátí řetězec znaku závislý na zdroji dat představující zvuk slov v string_exp. Například SQL Server vrátí 4místný kód SOUNDEX; Oracle vrátí fonetickou reprezentaci každého slova.
SPACE(count) (ODBC 2.0) Vrátí řetězec znaků skládající se z počtu mezer.
SUBSTRING(string_exp, spuštění, délka**)** (ODBC 1.0) Vrátí řetězec znaku odvozený od string_exp, počínaje pozicí znaku určenou počáteční pro délku znaků.
UCASE(string_exp) (ODBC 1.0) Vrátí řetězec, který se rovná řetězci v string_exp, se všemi malými písmeny převedenými na velká písmena.