字串函式

下表列出字串操作函式。 應用程式可以藉由呼叫 資訊類型 為 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( code (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_exp2 string_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 開始 長度 string_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 字元。
LENGTH(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_exp1 string_exp2 string_exp3 ) (ODBC 1.0) 搜尋 string_exp1 string_exp2 的等 位,並以 string_exp3 取代
RIGHT( string_exp 計數 (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 會傳回每個單字的注音表示。
SPACE( count (ODBC 2.0) 傳回由計數 空格組成的 字元字串。
SUBSTRING( string_exp start , length**)** (ODBC 1.0) 傳回衍生自 string_exp 的字元字串,從長度 字元開頭 指定的字元位置開始。
UCASE(string_exp ODBC 1.0) 傳回等於 string_exp 中的 字串,並將所有小寫字元轉換成大寫。