字符串函数
下表列出了字符串操作函数。 应用程序可以通过调用信息类型为 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_exp1 和 string_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_exp2内string_exp1第一个匹配项的起始位置。 搜索string_exp1的第一个匹配项以string_exp2中的第一个字符位置开始,除非指定了可选参数 start。 如果 指定了 start ,则搜索以起始值指示的 字符位置开始。 string_exp2中的第一个字符位置由值 1 指示。 如果在string_exp2中找不到string_exp1,则返回值 0。 如果应用程序可以使用 string_exp1、string_exp2 和 start 参数调用 LOCATE 标量函数,则当使用 SQL_STRING_FUNCTIONS 选项调用 SQLGetInfo 时,驱动程序将返回SQL_FN_STR_LOCATE。 如果应用程序只能调用具有string_exp1和string_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_exp1、string_exp2、string_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、start、length**)** (ODBC 1.0) | 返回从string_exp派生的字符串,从长度字符开头指定的字符位置开始。 |
UCASE(string_exp) (ODBC 1.0) | 返回一个等于string_exp中的字符串,所有小写字符都转换为大写。 |