Sybase IQ常用函数大全--字符串函数(2)

29 篇文章 0 订阅
9 篇文章 0 订阅

Sybase IQ常用函数大全–字符串函数(2)

查询索引:

  1. PATINDEX 函数:返回指定模式第一次出现时的起始位置。
  2. REPEAT 函数:以指定的次数连接字符串。
  3. REPLACE 函数:用一个子串替换各个位置出现的另一个子串。
  4. REPLICATE 函数:以指定的次数连接字符串。
  5. REVERSE 函数:采用一个参数作为类型 BINARY 或 STRING 的输入,并返回字符以反向顺序列出的指定字符串。(反转字符串)
  6. RIGHT 函数:返回字符串中最右边的字符。
  7. RTRIM 函数:返回尾随空白已删除的字符串。
  8. SPACE 函数:返回指定数目的空格。
  9. STR 函数:返回数字的等效字符串。
  10. STR_REPLACE 函数:采用三个参数作为类型 BINARY 或 STRING 的输入,并将第一个字符串表达式 (<string_expr1>) 中出现的第二个字符串表达式 (<string_expr2>) 的所有实例替换为第三个表达式 (<string_expr3>)。
  11. STRING 函数:将一个或多个字符串连接为一个大字符串。
  12. STRTOUUID 函数:将字符串值转换为唯一标识符(UUID 或 GUID)值。详解略。
  13. STUFF 函数:从一个字符串中删除一些字符,并用另一个字符串替换它们。
  14. SUBSTRING 函数:返回字符串的子串。
  15. SUBSTRING64 函数:SUBSTRING64 函数返回大对象列或变量参数的可变长度字符串。详解略。
  16. UCASE 函数:将字符串中的所有字符转换成大写形式。
  17. UPPER 函数:将字符串中的所有字符转换成大写形式。
  18. 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 位整数位置。
  • 如果您有权使用非结构化数据分析功能,则可以将此函数用于大对象数据。
示例:
-- 以下语句返回值 2:
SELECT PATINDEX( '%hoco%', 'chocolate' ) FROM iq_dummy

-- 以下语句返回值 11:
SELECT PATINDEX ('%4_5_', '0a1A 2a3A 4a5A') FROM iq_dummy

2. REPEAT 函数

以指定的次数连接字符串。

语法:
REPEAT ( <string-expression>, <integer-expression> )
解析:
参数说明
string-expression要重复的字符串。
integer-expression字符串的重复次数。如果 是负数,则返回空字符串。
示例:
-- 以下语句返回值 "repeatrepeatrepeat":
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。
示例:
-- 以下语句返回值 "xx.def.xx.ghi":
SELECT REPLACE( 'abc.def.abc.ghi', 'abc', 'xx' ) FROM iq_dummy

4. REPLICATE 函数

以指定的次数连接字符串。

语法:
REPLICATE ( <string-expression>, <integer-expression> )
解析:
参数说明
string-expression要重复的字符串。
integer-expression字符串的重复次数。
  • REPLICATE 与 REPEAT 函数相同。
示例:
-- 以下语句返回值 "repeatrepeatrepeat":
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。
  • 代理对被视为不可拆分,因此不能逆序。
示例:
-- 返回dcba
select reverse("abcd")

-- 返回 0x00503412
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要返回的空格数。
示例:
-- 以下语句返回包含 10 个空格的字符串:
SELECT SPACE( 10 ) FROM iq_dummy

9. STR 函数

返回数字的等效字符串。

语法:
STR ( <numeric-expression >[ , <length >[ , <decimal> ] ] )
解析:
参数说明
numeric-expression任何近似数值(FLOAT、REAL 或 DOUBLE 精度)的表达式
length要返回的字符数(包括小数点、小数点右侧和左侧的所有数字、符号(如果有)以及空白)。缺省值为 10,最大长度为 255。
decimal要返回的小数点右边的位数。缺省值为 0。
示例:
-- 如果数字的整数部分不符合指定的长度,则结果为 NULL。例如,下面的语句将返回 NULL:
SELECT STR( 1234.56, 3 ) FROM iq_dummy

-- 以下语句返回的字符串共有十个字符,前面是六个空格,后面是 1234:
SELECT STR( 1234.56 ) FROM iq_dummy

-- 以下语句返回结果 1234.5:
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。
示例:
-- 将字符串 <cdefghi> 中的字符串 <def> 替换为 <yyy>。 cyyyghi
select replace("cdefghi", "def", "yyy")

-- 将所有空格替换为 "toyota"   chevy,toyotaford,toyotamercedes
select str_replace ("chevy, ford, mercedes", "","toyota")

-- 接受第三个参数中的 NULL 并将其视为尝试用 NULL 替换 <string_expr2>,从而有效地将 STR_REPLACE 调整为“字符串剪切”操作。返回 “abcghijklm”:
select str_replace("abcdefghijklm", "def", NULL)

11. STRING 函数

将一个或多个字符串连接为一个大字符串。

语法:
STRING ( <string-expression> [ ,] )
解析:
参数说明
string-expression一个字符串。如果只提供一个参数,则会将它转换为单个表达式。如果提供多个参数,则会将它们连接为单个字符串。NULL 将作为空字符串 (’’) 处理。
  • 数字或日期参数在连接前将会转换为字符串。您也可以使用 STRING 函数将任何单个表达式转换为字符串,方法是提供该表达式作为唯一的参数。
  • 如果所有参数均为 NULL,则 STRING 将返回 NULL
示例:
-- 以下语句返回值 testing123:
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 的长度。
示例:
-- 以下语句返回值 "chocolate pie":
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(缺省)时,负值无效。
示例:
-- 以下语句返回 back:
SELECT SUBSTRING ( 'back yard', 1 , 4 ) FROM iq_dummy

-- 以下语句返回 yard:
SELECT SUBSTR ( 'back yard', -1 , -4 ) FROM iq_dummy

-- 以下语句返回 0x2233:
SELECT SUBSTR ( 0x112233445566, 2, 2 ) FROM iq_dummy

15. 略

16. UCASE 函数

将字符串中的所有字符转换成大写形式。

语法:
UCASE ( <string-expression> )
解析:
参数说明
string-expression要转换成大写形式的字符串。
示例:
-- 以下语句返回值 "CHOCOLATE":
SELECT UCASE( 'ChocoLate' ) FROM iq_dummy

17. UPPER 函数

将字符串中的所有字符转换成大写形式。

语法:
UPPER ( <string-expression> )
解析:
参数说明
string-expression要转换成大写形式的字符串。
示例:
-- 以下语句返回值 "CHOCOLATE":
SELECT UPPER( 'ChocoLate' ) FROM iq_dummy
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值