分享方式:


字串函式

下表列出字串操作函式。 應用程式可以藉由呼叫資訊類型為 SQL_STRING_FUNCTIONS的 SQLGetInfo,判斷驅動程序支援哪些字串函式。

備註

以string_exp表示的自變數可以是數據行、字元字串常值或另一個純量函式的結果,其中基礎數據類型可以表示為SQL_CHAR、SQL_VARCHAR或SQL_LONGVARCHAR。

以character_exp表示的自變數是可變長度的字元字串。

以 start、length 或 count 表示的自變數可以是數值常值另一個純量函式的結果,其中基礎數據類型可以表示為SQL_TINYINT、SQL_SMALLINT或SQL_INTEGER。

此處列出的字串函式是以1為基礎;也就是說,字串中的第一個字元是字元 1。

ODBC 3.0 中已新增BIT_LENGTH、CHAR_LENGTH、CHARACTER_LENGTH、OCTET_LENGTH和 POSITION 字串純量函式,以配合 SQL-92。

函式 描述
ASCII(string_exp (ODBC 1.0) 以整數傳回string_exp最左邊字元的 ASCII 代碼值。
BIT_LENGTH(string_exp (ODBC 3.0) 傳回字串運算式的長度 (以位元為單位)。

不只適用於字串數據類型,因此不會隱含地將string_exp轉換成字元串,而是會傳回指定之數據類型的 (internal) 大小。
CHAR( 程式代碼 (ODBC 1.0) 傳回具有程式代碼指定 ASCII 程式代碼值的字元。 程序代碼的值應該介於 0 到 255 之間,否則傳回值是數據源相依的。
CHAR_LENGTH(string_exp (ODBC 3.0) 如果字串運算式是字元資料類型,則會傳回字串運算式的長度 (以字元為單位);否則,會傳回字串運算式的長度 (以位元組為單位),且最小整數不小於位元數除以 8 的結果。 (此函數與 CHARACTER_LENGTH 函數相同。)
CHARACTER_LENGTH(string_exp (ODBC 3.0) 如果字串運算式是字元資料類型,則會傳回字串運算式的長度 (以字元為單位);否則,會傳回字串運算式的長度 (以位元組為單位),且最小整數不小於位元數除以 8 的結果。 (此函式與 CHAR_LENGTH 函式相同。
CONCAT(string_exp1,string_exp2 (ODBC 1.0) 傳回字元字串,這是串連 string_exp2string_exp1的結果。 產生的字串為 DBMS 相依。 例如,如果以 string_exp1 表示的數據行包含 NULL 值,DB2 會傳回 NULL,但 SQL Server 會傳回非 NULL 字串。
差異(string_exp1,string_exp2 (ODBC 2.0) 傳回整數值,指出 SOUNDEX 函式針對 string_exp1 和 string_exp2 傳回的值之間的差異。
INSERT( string_exp1, startlengthstring_exp2) (ODBC 1.0) 傳回字元字串,其中長度字元已從string_exp1刪除,從開頭開始,以及從string_exp開始插入string_exp2的位置。
LCASE(string_exp (ODBC 1.0) 傳回等於 string_exp 中的字串,並將所有大寫字元轉換成小寫。
LEFT(string_exp計數 (ODBC 1.0) 會傳回最左邊的string_exp字元。
長度(string_exp (ODBC 1.0) 傳回string_exp中的 字元數, 不包括尾端空白。

LENGTH 只接受字串。 因此,會將string_exp隱含轉換成字串,並傳回此字串的長度(而非數據類型的內部大小)。
LOCATE( string_exp1, string_exp2[, start]) (ODBC 1.0) 傳回string_exp2內第一個出現string_exp1的起始位置。 除非指定選擇性自變數 start,否則搜尋第一個出現的string_exp1會以string_exp2中的第一個字元位置開始。 如果指定 start,搜尋會以 start 值所指示的字元位置開始。 string_exp2中的第一個字元位置會以值 1 表示。 如果在string_exp2內找不到string_exp1,則會傳回值 0。

如果應用程式可以使用 string_exp1、string_exp2 和 start 自變數呼叫 LOCATE 純量函式,當使用選項的 option 呼叫 SQLGetInfo ,驅動程式會傳回 SQL_STRING_FUNCTIONS SQL_FN_STR_LOCATE。 如果應用程式只能呼叫只有string_exp1和string_exp2自變數的LOCATE純量函式,則驅動程式會傳回SQL_FN_STR_LOCATE_2 SQLGetInfo 搭配選項SQL_STRING_FUNCTIONS呼叫時。 支援使用兩個或三個自變數呼叫 LOCATE 函式的驅動程式會同時傳回SQL_FN_STR_LOCATE和SQL_FN_STR_LOCATE_2。
LTRIM(string_exp (ODBC 1.0) 傳回string_exp字元,並移除前置空白。
OCTET_LENGTH(string_exp (ODBC 3.0) 傳回字串運算式的長度 (以位元組為單位)。 結果就是不小於位元數的最小整數除以 8。

不只適用於字串數據類型,因此不會隱含地將string_exp轉換成字元串,而是會傳回指定之數據類型的 (internal) 大小。
位置(character_exp中的character_exp (ODBC 3.0) 傳回第二個字元表示式中第一個字元表示式的位置。 結果是實作定義的有效位數和小數字數為 0 的精確數值。
REPEAT( string_exp, count (ODBC 1.0) 傳回由重複計數時間string_exp組成的字元字串。
REPLACE( string_exp1string_exp2string_exp3) (ODBC 1.0) 搜尋string_exp1 string_exp2的等位,並以 string_exp3 取代
RIGHT( string_expcount (ODBC 1.0) 傳回最右邊string_exp計數字元。
RTRIM(string_exp (ODBC 1.0) 傳回已移除尾端空白的string_exp字元。
SOUNDEX(string_exp (ODBC 2.0) 傳回數據源相依字元字串,代表string_exp單字的聲音。 例如,SQL Server 會傳回 4 位數的 SOUNDEX 程式代碼;Oracle 會傳回每個單字的注音表示。
空間(計數 (ODBC 2.0) 傳回由計數空格組成的字元字串。
SUBSTRING( string_expstart, length**)** (ODBC 1.0) 傳回衍生自 string_exp 的字元字串,從長度字元開頭指定的字元位置開始。
UCASE(string_exp (ODBC 1.0) 傳回等於 string_exp 中的字串,並將所有小寫字元轉換成大寫。