字符串函数

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

备注

表示 为string_exp 的参数可以是列的名称、 character-string-literal 或另一个标量函数的结果,其中基础数据类型可以表示为SQL_CHAR、SQL_VARCHAR或SQL_LONGVARCHAR。

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

表示为 startlengthcount 的参数可以是 数值文本 ,也可以是另一个标量函数的结果,其中基础数据类型可以表示为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 function.)
CONCAT (string_exp1string_exp2) (ODBC 1.0) 返回一个字符串,该字符串是将 string_exp2 连接到 string_exp1的结果。 生成的字符串依赖于 DBMS。 例如,如果string_exp1表示的列包含 NULL 值,则 DB2 将返回 NULL,但SQL Server将返回非 NULL 字符串。
DIFFERENCE (string_exp1string_exp2) (ODBC 2.0) 返回一个整数值,该值指示 SOUNDEX 函数针对 string_exp1 返回的值与 string_exp2值之间的差异。
INSERT (string_exp1startlengthstring_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的最左侧的计数字符。
(ODBC 1.0 ) (string_exp) 长度 返回string_exp中的字符数 不包括尾随空格。

LENGTH 仅接受字符串。 因此,会将 string_exp 隐式转换为字符串,并返回此字符串的长度 (而不是数据类型) 的内部大小。
定位 (string_exp1string_exp2[, start]) ( ODBC 1.0) 返回string_exp2内第一次出现string_exp1的起始位置。 除非指定了可选参数 start,否则搜索第一个出现的string_exp1string_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 标量函数,则当调用 SQLGetInfo 时,驱动程序将返回SQL_FN_STR_LOCATE_2,而 选项 为 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 转换为字符串,而是返回给定的任何数据类型 (内部) 大小。
在 CHARACTER_EXP ) ( ODBC 3.0) 定位 ( character_exp 返回第二个字符表达式中第一个字符表达式的位置。 结果是具有实现定义的精度且刻度为 0 的精确数值。
REPEAT (string_exp,count) (ODBC 1.0) 返回由重复计数时间string_exp的字符串。
替换 (string_exp1string_exp2string_exp3) (ODBC 1.0) 搜索 string_exp1string_exp2的出现,并将 替换为 string_exp3
右 (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 返回每个单词的拼音表示形式。
( ODBC 2.0 ) ) 空间 (计数 返回由 计数 空格组成的字符串。
SUBSTRING (string_expstart、length**) ** (ODBC 1.0) 返回派生自 string_exp 的字符串,从长度字符的 start 指定的字符位置开始。
UCASE (string_exp) (ODBC 1.0) 返回一个等于 string_exp 中的字符串,所有小写字符都转换为大写。