Ř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. |
|
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. |
|
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 |
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. |