REVERSE 函数

REVERSE 函数接受字符表达式作为它的参数,并返回同样长度的字符串,但颠倒每个逻辑字符的顺序位置。

这是 REVERSE 函数的语法:
REVERSE 函数
元素 描述 限制 语法
source_string 求值为字符串的表达式 必须为表达式、常量、列或可转换为字符类型的类型的主变量 表达式

REVERSE 函数的参数不可有用户定义的数据类型。内建的 CHAR、LVARCHAR、NCHAR、NVARCHAR 和 VARCHAR 类型是有效的。

REVERSE 函数返回与它的 source_string 参数相同的数据类型。

如果您指定作为参数的表达式求值为 NULL,则返回值为 NULL。

对于求值为 N 字符的字符串的参数,在 source_string 中每一字符的顺序位置 p 在返回的字符串中成为 (N + 1 - p)。这颠倒了 source_string 中字符序列的原始顺序,因此,返回值以 source_string 中的最后一个字符开头,并以 source_string 的第一个字符结尾。

例如,函数表达式 REVERSE('Mood') 从加引号的字符串参数返回字符串 dooM。在单字节和多字节代码集中,仅颠倒顺序的位置,而不颠倒字母本身。在上述的函数表达式中,'d' 不成为 'b',且多字节代码集(例如,utf8GB2312-80)中的每一逻辑字符作为单一的逻辑单位换位。

如果参数求值为单个字符或空的 source_string,则返回值与 source_string 相同,如同 REVERSE 函数未起作用一样。对于包括多个字符的字符串,仅当 source_string 是回文时,此等式才为真。对于 MOD(N,2) = 1 的字符串,顺序位置为 (N+1)/2 的字符在 source_string 中和在返回的字符串中都处于相同的中间位置。

在下列示例中,REVERSE 函数颠倒一个引号括起的字符串参数:
SELECT REVERSE('Able was I ere I saw Elba.') FROM Mirror_Table;
下列表格展示此 SELECT 语句的输出。
(constant)
.ablE was I ere I saw elbA