当前位置:网站首页>SQL函数 %SQLSTRING
SQL函数 %SQLSTRING
2022-08-01 12:02:00 【用户7741497】
SQL函数 %SQLSTRING
将值排序为字符串的排序规则函数。
大纲
%SQLSTRING(expression[,maxlen])
%SQLSTRING expression参数
expression- 字符串表达式,可以是列名、字符串文字或另一个函数的结果,其中基础数据类型可以表示为任何字符类型(例如CHAR或VARCHAR)。表达式可以是子查询。maxlen- 可选 — 一个正整数,指定整理后的值将被截断为maxlen的值。请注意,maxlen包括附加的前导空格。可以用双括号将maxlen括起来以抑制文字替换:((maxlen))。
描述
%SQLSTRING 将表达式转换为按(区分大小写)字符串排序的格式。 %SQLSTRING 从字符串中去除尾随空格(空格、制表符等),然后在字符串的开头添加一个前导空格。这个附加的空格强制将 NULL 和数值作为字符串进行整理。从数字中删除前导零和尾随零。
因为 %SQLSTRING 将空格附加到所有值,所以它将 NULL 值整理为空格,字符串长度为 1。 %SQLSTRING 将任何仅包含空格(空格、制表符等)的值整理为 SQL 空字符串('')。当 %SQLSTRING 将空格附加到空(零长度)字符串时,它会将空格加上空字符串的内部表示形式 $CHAR(0) 进行整理,从而导致字符串长度为 2。
可选的 maxlen 参数在索引或整理时将表达式字符串截断为指定的字符数。例如,如果插入带有 maxlen 截断的字符串,则插入完整的字符串,并且可以通过 SELECT 语句检索;此字符串的全局索引被截断为指定长度。这意味着 ORDER BY 和比较操作仅评估截断的索引字符串。这种截断对于对超过下标的最大字符长度的字符串进行索引特别有用。使用 maxlen 参数,如果需要对长字段进行索引,可以使用截断长度参数。
%SQLSTRING 在转换表达式后执行 maxlen 截断;如果 maxlen 超过转换后的表达式的长度,则不添加填充。最大字符串长度为 3,641,144 个字符; maxlen 没有强制执行最大值。
可以使用 %SYSTEM.Util 类的 Collation() 方法在 ObjectScript 中执行相同的排序规则转换:
DHC-APP> WRITE $SYSTEM.Util.Collation("The quick, BROWN fox.",8)
The quick, BROWN fox.也可以使用 SQLSTRING() 方法调用从 ObjectScript 调用此函数:
DHC-APP> WRITE $SYSTEM.SQL.SQLSTRING("The quick, BROWN fox.")
The quick, BROWN fox.这两种方法都支持 SQLSTRING 转换后的截断。请注意,截断长度必须包括附加的空白:
DHC-APP>WRITE $SYSTEM.Util.Collation("The quick, BROWN fox.",8,6)
The q
DHC-APP>WRITE $SYSTEM.SQL.SQLSTRING("The quick, BROWN fox.",6)
The q注意:要将系统范围的默认排序规则从 %SQLUPPER(不区分大小写)更改为 %SQLSTRING(区分大小写),请使用以下命令:
WRITE $$SetEnvironment^%apiOBJ("collation","%Library.String","SQLSTRING")发出此命令后,必须清除索引,重新编译所有类,然后重建索引。不要在其他用户访问表的数据时重建索引。这样做可能会导致查询结果不准确。
示例
以下查询在 WHERE 子句中使用 %SQLSTRING 来执行区分大小写的选择:
SELECT Name FROM Sample.Person
WHERE %SQLSTRING Name %STARTSWITH %SQLSTRING 'Al'
ORDER BY Name默认情况下,%STARTSWITH 字符串比较不区分大小写。此示例使用 %SQLSTRING 格式使此比较区分大小写。它返回所有以“Al”开头的名称(例如 Allen、Alton 等)。请注意,使用 %STARTSWITH 时,应将 %SQLSTRING排序规则应用于语句的两侧。
以下示例使用带有字符串截断的 %SQLSTRING 来返回每个名称的前两个字符。请注意,字符串截断是 3(不是 2),因为 %SQLSTRING 添加了前导空格。 ORDER BY 子句使用这个两个字符的字段将行放在一个粗略的排序顺序中:
SELECT Name, %SQLSTRING(Name,3) AS FirstTwo
FROM Sample.Person
ORDER BY FirstTwo此示例在不更改字母大小写的情况下返回截断的值。
边栏推荐
- Istio Meetup China:全栈服务网格 - Aeraki 助你在 Istio 服务网格中管理任何七层流量
- Istio Meetup China: Full Stack Service Mesh - Aeraki Helps You Manage Any Layer 7 Traffic in an Istio Service Mesh
- Beyond Compare 4 trial period expires
- R语言诊断ARIMA模型:forecast包构建了一个ARIMA模型、使用checkresiduals函数诊断ARIMA模型、并进行结果解读(拟合较差的ARIMA模型具有的特点)
- How much do you know about Amazon reviews?
- 博弈论(Depu)与孙子兵法(42/100)
- 语音聊天app源码——语音聊天派对
- pandas连接oracle数据库并拉取表中数据到dataframe中、筛选当前时间(sysdate)到一个小时之前的所有数据(筛选一个小时的范围数据)
- Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
- Js手写函数之new的模拟实现
猜你喜欢
随机推荐
The use of Ts - Map type
Fault 007: The dexp derivative is inexplicably interrupted
易周金融分析 | 银行ATM机智能化改造提速;互联网贷款新规带来挑战
通配符SSL证书不支持多域名吗?
C language implementation!20000 in 4 seconds
SQL函数 SQUARE
阿里云官方 Redis 开发规范
基于ArkUI eTS开发的坚果食谱(NutRecipes)
mysql进阶(二十二)MySQL错误之Incorrect string value中文字符输入错误问题分析
[Unity3D Plugin] AVPro Video Plugin Share "Video Player Plugin"
新书上市 |《谁在掷骰子?》在“不确定性时代”中确定前行
MarkDown公式指导手册
OpenHarmony高校技术俱乐部计划发布
蔚来又一新品牌披露:产品价格低于20万
bat倒计时代码
(ES6以上以及TS) Map对象转数组
sql中ddl和dml(数据库表与视图的区别)
pgAdmin 4 v6.12 发布,PostgreSQL 开源图形化管理工具
初级必备:单例模式的7个问题
实现集中式身份认证管理的案例








