Sybase IQ常用函数大全–字符串函数(2)
查询索引:
- PATINDEX 函数:返回指定模式第一次出现时的起始位置。
- REPEAT 函数:以指定的次数连接字符串。
- REPLACE 函数:用一个子串替换各个位置出现的另一个子串。
- REPLICATE 函数:以指定的次数连接字符串。
- REVERSE 函数:采用一个参数作为类型 BINARY 或 STRING 的输入,并返回字符以反向顺序列出的指定字符串。(反转字符串)
- RIGHT 函数:返回字符串中最右边的字符。
- RTRIM 函数:返回尾随空白已删除的字符串。
- SPACE 函数:返回指定数目的空格。
- STR 函数:返回数字的等效字符串。
- STR_REPLACE 函数:采用三个参数作为类型 BINARY 或 STRING 的输入,并将第一个字符串表达式 (<string_expr1>) 中出现的第二个字符串表达式 (<string_expr2>) 的所有实例替换为第三个表达式 (<string_expr3>)。
- STRING 函数:将一个或多个字符串连接为一个大字符串。
- STRTOUUID 函数:将字符串值转换为唯一标识符(UUID 或 GUID)值。详解略。
- STUFF 函数:从一个字符串中删除一些字符,并用另一个字符串替换它们。
- SUBSTRING 函数:返回字符串的子串。
- SUBSTRING64 函数:SUBSTRING64 函数返回大对象列或变量参数的可变长度字符串。详解略。
- UCASE 函数:将字符串中的所有字符转换成大写形式。
- UPPER 函数:将字符串中的所有字符转换成大写形式。
- UUIDTOSTR 函数:将唯一标识符值(UUID,又称 GUID)转换为字符串值。详解略。
1. PATINDEX 函数
返回指定模式第一次出现时的起始位置。
语法:
PATINDEX ( '%<pattern>%', <string-expression> )
解析:
参数 | 说明 |
---|
pattern | 要搜索的模式。对于具有通配符的模式,此字符串的大小不得超过 126 字节。如果省略前导百分号通配符,则当模式出现在字符串起始处时,PATINDEX 将返回一 (1),否则返回零。如果 以百分比通配符开头,则将两个前导百分比通配符视为一个。不带通配符(百分号 % 或下划线 _)的模式的长度最大可达 255 字节。 |
string-expression | 要在其中搜索模式的字符串。 |
- PATINDEX 返回模式第一次出现的起始位置。如果搜索的字符串包含字符串模式的多个实例,PATINDEX 将仅返回第一个实例的位置。
- 模式与 LIKE 比较使用相同的通配符。下表列出了模式通配符:
通配符 | 匹配项 |
---|
_(下划线) | 任意一个字符 |
%(百分号) | 包含零个或多个字符的任意字符串 |
[] | 指定范围或集合中的任何单个字符 |
[^] | 不在指定范围或集合中的任何单个字符 |
- 如果未找到模式,则 PATINDEX 将返回零 (0)。
- 搜索长度超过 126 个字节的模式将返回 NULL。
- 搜索零长度的字符串将返回 1。
- 如果任一参数为 NULL,则结果为零 (0)。
- PATINDEX 函数中返回或指定的所有位置或偏移始终为字符偏移,并且可能不同于多字节数据的字节偏移。
- PATINDEX 为 CHAR 和 VARCHAR 列返回不带符号的 32 位整数位置。
- 如果您有权使用非结构化数据分析功能,则可以将此函数用于大对象数据。
示例:
SELECT PATINDEX( '%hoco%', 'chocolate' ) FROM iq_dummy
SELECT PATINDEX ('%4_5_', '0a1A 2a3A 4a5A') FROM iq_dummy
2. REPEAT 函数
以指定的次数连接字符串。
语法:
REPEAT ( <string-expression>, <integer-expression> )
解析:
参数 | 说明 |
---|
string-expression | 要重复的字符串。 |
integer-expression | 字符串的重复次数。如果 是负数,则返回空字符串。 |
示例:
SELECT REPEAT( 'repeat', 3 ) FROM iq_dummy
3. REPLACE 函数
用一个子串替换各个位置出现的另一个子串。
语法:
REPLACE ( <original-string>, <search-string>, <replace-string >)
解析:
参数 | 说明 |
---|
original-string | 被搜索的字符串。此字符串可以为任意长度。 |
search-string | 将被搜索并以 进行替换的字符串。此字符串的长度不应超过 255 个字节。如果 是空字符串,则按原样返回原始字符串。 |
replace-string | 替代字符串,用于替换 。可为任意长度。如果 是空字符串,则删除出现的所有 。 |
- 如果有某个参数为 NULL,此函数返回 NULL。
示例:
SELECT REPLACE( 'abc.def.abc.ghi', 'abc', 'xx' ) FROM iq_dummy
4. REPLICATE 函数
以指定的次数连接字符串。
语法:
REPLICATE ( <string-expression>, <integer-expression> )
解析:
参数 | 说明 |
---|
string-expression | 要重复的字符串。 |
integer-expression | 字符串的重复次数。 |
示例:
SELECT REPLICATE( 'repeat', 3 ) FROM iq_dummy
5. REVERSE 函数
采用一个参数作为类型 BINARY 或 STRING 的输入,并返回字符以反向顺序列出的指定字符串。(反转字符串)
语法:
REVERSE (< expression> | <uchar_expr> )
解析:
参数 | 说明 |
---|
expression | 类型为 CHAR、VARCHAR、NCHAR、NVARCHAR、BINARY 或 VARBINARY 的字符或二进制类型列名、变量或常量表达式。 |
- REVERSE 是一个字符串函数,它返回 expression 的逆序形式。
- 如果 expression 是 NULL,则 reverse 返回 NULL。
- 代理对被视为不可拆分,因此不能逆序。
示例:
select reverse("abcd")
select reverse(0x12345000)
6. RIGHT 函数
返回字符串中最右边的字符。
语法:
RIGHT ( <string-expression>, <numeric-expression> )
解析:
参数 | 说明 |
---|
string-expression | 要从左边截断的字符串。 |
numeric-expression | 要返回的字符串结尾处的字符数。 |
- 如果字符串包含多字节字符,并且使用了适当的归类,则返回的字节数可能大于指定的字符数。
示例:
以下语句返回值 "olate":
SELECT RIGHT( 'chocolate', 5 ) FROM iq_dummy
7. RTRIM 函数
返回尾随空白已删除的字符串。
语法:
RTRIM ( <string-expression> )
解析:
参数 | 说明 |
---|
string-expression | 要剪裁的字符串。 |
示例:
以下语句返回字符串 "Test Message",其中的所有末尾空格都已删除。
SELECT RTRIM('Test Message ') FROM iq_dummy
8. SPACE 函数
返回指定数目的空格。
语法:
SPACE ( <integer-expression> )
解析:
参数 | 说明 |
---|
integer-expression | 要返回的空格数。 |
示例:
SELECT SPACE( 10 ) FROM iq_dummy
9. STR 函数
返回数字的等效字符串。
语法:
STR ( <numeric-expression >[ , <length >[ , <decimal> ] ] )
解析:
参数 | 说明 |
---|
numeric-expression | 任何近似数值(FLOAT、REAL 或 DOUBLE 精度)的表达式 |
length | 要返回的字符数(包括小数点、小数点右侧和左侧的所有数字、符号(如果有)以及空白)。缺省值为 10,最大长度为 255。 |
decimal | 要返回的小数点右边的位数。缺省值为 0。 |
示例:
SELECT STR( 1234.56, 3 ) FROM iq_dummy
SELECT STR( 1234.56 ) FROM iq_dummy
SELECT STR( 1234.56, 6, 1 ) FROM iq_dummy
10. STR_REPLACE 函数
采用三个参数作为类型 BINARY 或 STRING 的输入,并将第一个字符串表达式 (<string_expr1>) 中出现的第二个字符串表达式 (<string_expr2>) 的所有实例替换为第三个表达式 (<string_expr3>)。
语法:
REPLACE ( <string_expr1>, <string_expr2>, <string_expr3> )
解析:
参数 | 说明 |
---|
string_expr1 | 源字符串或要搜索的字符串表达式,表示为 CHAR、VARCHAR、UNICHAR、UNIVARCHAR、VARBINARY 或 BINARY 数据类型。 |
string_expr2 | 模式字符串或要在第一个表达式 (<string_expr1>) 中查找的字符串表达式,表示为 CHAR、VARCHAR、UNICHAR、UNIVARCHAR、VARBINARY 或 BINARY 数据类型。 |
string_expr3 | 替换字符串表达式,表示为 CHAR、VARCHAR、UNICHAR、UNIVARCHAR、VARBINARY 或 BINARY 数据类型。 |
- STR_REPLACE 是 REPLACE 函数的别名。
- 采用任何数据类型作为输入并返回 STRING 或 BINARY。例如,在进一步评估之前,作为参数传递的空字符串 ("") 将替换为一个空格 (" ")。对于 BINARY 和 STRING 类型,这一点均适用。
- 所有参数都可以组合使用 BINARY 和 STRING 数据类型。
- 如果 SAP IQ 因在编译表达式时参数值未知而无法计算结果长度,则使用的结果长度为 255。
- RESULT_LEN 永远不会超过 32767。
示例:
select replace("cdefghi", "def", "yyy")
select str_replace ("chevy, ford, mercedes", "","toyota")
select str_replace("abcdefghijklm", "def", NULL)
11. STRING 函数
将一个或多个字符串连接为一个大字符串。
语法:
STRING ( <string-expression> [ , … ] )
解析:
参数 | 说明 |
---|
string-expression | 一个字符串。如果只提供一个参数,则会将它转换为单个表达式。如果提供多个参数,则会将它们连接为单个字符串。NULL 将作为空字符串 (’’) 处理。 |
- 数字或日期参数在连接前将会转换为字符串。您也可以使用 STRING 函数将任何单个表达式转换为字符串,方法是提供该表达式作为唯一的参数。
- 如果所有参数均为 NULL,则 STRING 将返回 NULL
示例:
SELECT STRING( 'testing', NULL, 123 ) FROM iq_dummy
12. 略
13. STUFF 函数
从一个字符串中删除一些字符,并用另一个字符串替换它们。
语法:
STUFF ( <string-expression1>, <start>, <length>, <string-expression2 >)
解析:
参数 | 说明 |
---|
string-expression1 | 要用 STUFF 函数修改的字符串 |
start | 开始删除字符的字符位置。字符串中第一个字符的位置是 1。 |
length | 要删除的字符数。 |
string-expression2 | 要插入的字符串。若要使用 STUFF 函数删除字符串的一部分,请使用 NULL 作为替换字符串 |
- 若要使用 STUFF 删除字符串的一部分,请使用 NULL 作为替换字符串。若要使用 STUFF 插入字符串,请将长度设为零。
- 在以下情况下,STUFF 函数将返回 NULL 结果:
- 前三个参数中的任一参数为 NULL 值。
- start 或 length 参数为负值。
- start 参数大于 string-expression1 的长度。
示例:
SELECT STUFF( 'chocolate cake', 11, 4, 'pie' ) FROM iq_dummy
14. SUBSTRING 函数
返回字符串的子串。
语法:
{ SUBSTRING | SUBSTR } ( <string-expression>, <start> [ , <length >] )
解析:
参数 | 说明 |
---|
string-expression | 从中返回子串的字符串。 |
start | 要返回的子串的开始位置(以字符为单位)。负起始位置指定从字符串结尾处(而不是开始处)开始的字符数。字符串中第一个字符的位置是 1。 |
length | 要返回的子串的长度(以字符为单位)。正 表示子字符串在起始位置右侧的第 个字符处结束,而负 指定子字符串在起始位置左侧的第 个字符处结束。 |
- 如果指定了 ,则子字符串不应超过该长度。如果未指定长度,则从 位置开始返回字符串的其余部分。
- 和 都可以是负数。通过使用适当的负数和正数组合,可以从字符串开始处或结束处获取子串。
- 如果您有权使用非结构化数据分析功能,则可以将此函数用于大对象数据。
- 当 ansi_substring 数据库选项设置为 ON(缺省)时,负值无效。
示例:
SELECT SUBSTRING ( 'back yard', 1 , 4 ) FROM iq_dummy
SELECT SUBSTR ( 'back yard', -1 , -4 ) FROM iq_dummy
SELECT SUBSTR ( 0x112233445566, 2, 2 ) FROM iq_dummy
15. 略
16. UCASE 函数
将字符串中的所有字符转换成大写形式。
语法:
UCASE ( <string-expression> )
解析:
参数 | 说明 |
---|
string-expression | 要转换成大写形式的字符串。 |
示例:
SELECT UCASE( 'ChocoLate' ) FROM iq_dummy
17. UPPER 函数
将字符串中的所有字符转换成大写形式。
语法:
UPPER ( <string-expression> )
解析:
参数 | 说明 |
---|
string-expression | 要转换成大写形式的字符串。 |
示例:
SELECT UPPER( 'ChocoLate' ) FROM iq_dummy