第118章 SQL函数 REVERSE
2022-04-21 本文已影响0人
Cache技术分享
第118章 SQL函数 REVERSE
标量字符串函数,它以相反的字符顺序返回一个字符串。
大纲
REVERSE(string-expression)
参数
-
string-expression
- 要反转的字符串表达式。表达式可以是列名、字符串文字、数字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如CHAR
或VARCHAR
)。
描述
REVERSE 返回字符顺序颠倒的字符串表达式。例如 'Hello World!'
返回为 '!dlroW olleH'
。这是一个简单的字符串顺序反转,没有额外的处理。
返回的字符串是数据类型 VARCHAR
,与输入值的数据类型无关。数字转换为规范形式,数字字符串在反转之前不会转换为规范形式。
前导和尾随空白不受反转的影响。
反转 NULL
值会导致 NULL
。
注意:因为 REVERSE
总是返回一个 VARCHAR
字符串,所以某些类型的数据在反转时会变得无效:
- 反向列表不再是有效列表,无法从存储格式转换为显示格式。
- 反转日期不再是有效日期,并且无法从存储格式转换为显示格式。
示例
以下示例反转 Name
字段值。在这种情况下,这会导致名称按中间名首字母排序:
SELECT Name,REVERSE(Name) AS RevName
FROM Sample.Person
ORDER BY RevName
image.png
请注意,因为 Name
和 RevName
只是同一字段的不同表示,所以 ORDER BY RevName
和 ORDER BY RevName,Name
执行相同的排序。
以下示例反转数字和数字字符串:
SELECT REVERSE(+007.10) AS RevNum,
REVERSE('+007.10') AS RevNumStr
1.7 01.700+
以下嵌入式 SQL 示例反转 $DOUBLE
数字:
/// d ##class(PHA.TEST.SQLFunction).Reverse()
ClassMethod Reverse()
{
s dnum = $DOUBLE(1.1)
&sql(
SELECT REVERSE(:dnum) INTO :drevnum
)
w dnum,!
w drevnum,!
}
DHC-APP> d ##class(PHA.TEST.SQLFunction).Reverse()
1.1000000000000000888
8880000000000000001.1
以下示例显示了反转列表时发生的情况:
SELECT FavoriteColors,REVERSE(FavoriteColors) AS RevColors
FROM Sample.Person
image.png
以下示例显示了反转日期时发生的情况:
SELECT DOB,%INTERNAL(DOB) AS IntDOB,REVERSE(DOB) AS RevDOB
FROM Sample.Person
image.png