Published on InterSystems Developer Community (https://community.intersystems.com)

主页 > 第108章 SQL函数 %PLUS

文章
姚 鑫 · 四月 10, 2022 阅读大约需 2 分钟

第108章 SQL函数 %PLUS

[toc]

第108章 SQL函数 %PLUS

将数字转换为规范排序格式的排序函数。

大纲

%PLUS(expression)

%PLUS expression

参数

  • expression - 表达式,它可以是列的名称、数字或字符串字面值、算术表达式或另一个函数的结果,其中基础数据类型可以表示为任何字符类型。

描述

%PLUS将数字或数字字符串转换为规范形式,然后以数字排序顺序返回这些表达式值。

数字可以包含前导和后导零、多个前导加减号、单个小数点指示符(.)和E指数指示符。
在标准形式中,将执行所有算术运算,展开指数,将符号解析为一个前导减号或无符号,并剥离前导和后导零。

可以使用或不使用封闭字符串分隔符来指定数字字面值。
如果字符串包含非数字字符,%PLUS将在第一个非数字字符处截断数字,并以规范形式返回数字部分。
非数字字符串(任何以非数字字符开头的字符串)返回为0。
%PLUS也返回null为0。

%PLUS是一个SQL扩展,用于SQL查询查询。

可以使用 %SYSTEM.Util 类的 Collation() 方法在 ObjectScript 中执行相同的排序规则转换:

  WRITE $SYSTEM.Util.Collation("++007.500",3)

将 %PLUS 与 %MVR 排序规则进行比较,后者根据字符串中的数字子字符串对字符串进行排序。

示例

以下示例使用 %PLUS 按数字顺序返回 Home_Street 地址:

SELECT Name,Home_Street
FROM Sample.Person
ORDER BY %PLUS(Home_Street)

注意,上面的示例按照升序数字顺序对街道地址的整数部分进行排序。
将其与下面的ORDER BY示例进行比较,该示例按照排序顺序对街道地址进行排序:

SELECT Name,Home_Street
FROM Sample.Person
ORDER BY Home_Street
#SQL #Caché

源 URL:https://cn.community.intersystems.com/post/%E7%AC%AC108%E7%AB%A0-sql%E5%87%BD%E6%95%B0-plus