字符串函数

下表列出了字符串操作函数。 应用程序可以通过调用信息类型为 SQL_STRING_FUNCTIONS 的 SQLGetInfo 来确定驱动程序支持哪些字符串函数。

注解

表示 为string_exp 的参数可以是列的名称、 字符串文本或另一个标量函数的结果,其中基础数据类型可以表示为SQL_CHAR、SQL_VARCHAR或SQL_LONGVARCHAR。

表示 为character_exp 的参数是可变长度的字符串。

表示为开始、长度或计数的参数可以是数字文本或另一个标量函数的结果,其中基础数据类型可以表示为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转换为字符串,而是返回给定的任何数据类型的(内部)大小。
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_exp2连接到string_exp1的结果。 生成的字符串依赖于 DBMS。 例如,如果由string_exp1表示的列包含 NULL 值,DB2 将返回 NULL,但 SQL Server 将返回非 NULL 字符串。
差异(string_exp1,string_exp2 (ODBC 2.0) 返回一个整数值,该值指示 SOUNDEX 函数为 string_exp1string_exp2返回的值之间的差异。
INSERT(string_exp1开始长度string_exp2 (ODBC 1.0) 返回从string_exp1中删除长度字符的字符串,从开头开始,从string_exp2插入到string_exp,开头开始
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_exp2string_exp1第一个匹配项的起始位置。 搜索string_exp1的第一个匹配项以string_exp2中的第一个字符位置开始,除非指定了可选参数 start 如果 指定了 start ,则搜索以起始值指示的 字符位置开始。 string_exp2中的第一个字符位置由值 1 指示。 如果在string_exp2中找不到string_exp1,则返回值 0。

如果应用程序可以使用 string_exp1string_exp2start 参数调用 LOCATE 标量函数,则当使用 SQL_STRING_FUNCTIONS 选项调用 SQLGetInfo,驱动程序将返回SQL_FN_STR_LOCATE。 如果应用程序只能调用具有string_exp1string_exp2参数的 LOCATE 标量函数,则当使用 SQL_STRING_FUNCTIONS 选项调用 SQLGetInfo,驱动程序将返回SQL_FN_STR_LOCATE_2。 支持使用两个或三个参数调用 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转换为字符串,而是返回给定的任何数据类型的(内部)大小。
POSITION(character_exp in 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_exp,count (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(计数 (ODBC 2.0) 返回包含计数空格的字符串。
SUBSTRING(string_exp、startlength**)** (ODBC 1.0) 返回从string_exp派生的字符串,从长度字符开头指定的字符位置开始
UCASE(string_exp (ODBC 1.0) 返回一个等于string_exp中的字符串,所有小写字符都转换为大写。