当前位置:网站首页>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此示例在不更改字母大小写的情况下返回截断的值。
边栏推荐
- ddl and dml in sql (the difference between database table and view)
- Aeraki Mesh became CNCF sandbox project
- Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
- (ES6以上以及TS) Map对象转数组
- [CLion] CLion always prompts "This file does not belong to any project target xxx" solution
- 【likeshop】回收租凭系统100%开源无加密 商城+回收+租赁
- Jenkins安装插件遇到的问题
- 2022 Go ecosystem rpc framework Benchmark
- Hot review last week (7.25 7.31)
- 如何获取微信视频号的地址(微信公众号的链接地址)
猜你喜欢

Apex installation error

Fault 007: The dexp derivative is inexplicably interrupted

爱可可AI前沿推介(8.1)

如何使用 Authing 单点登录,集成 Discourse 论坛?

【倒计时5天】探索音画质量提升背后的秘密,千元大礼等你来拿

Dameng replaces the officially authorized dm.key

一文带你读懂云原生、微服务与高可用

.NET analyzes the LINQ framework in depth (three: the elegant prelude of LINQ)

mysql进阶(二十二)MySQL错误之Incorrect string value中文字符输入错误问题分析

2022 Go生态圈 rpc 框架 Benchmark
随机推荐
The use of Ts - Map type
win10系统重装,无法登录进行同步的情况下chrome数据恢复
activiti工作流的分页查询避坑
.NET analyzes the LINQ framework in depth (three: the elegant prelude of LINQ)
pgAdmin 4 v6.12 发布,PostgreSQL 开源图形化管理工具
ddl and dml in sql (the difference between database table and view)
Favorites|Mechanical Engineer Interview Frequently Asked Questions
并发编程10大坑,你踩过几个?
字体反爬之好租
sql中ddl和dml(数据库表与视图的区别)
Process sibling data into tree data
这项工作事关中小学生生命安全!五部门作出联合部署
Fault 007: The dexp derivative is inexplicably interrupted
How to get the address of WeChat video account (link address of WeChat public account)
【倒计时5天】探索音画质量提升背后的秘密,千元大礼等你来拿
腾讯云原生:Areaki Mesh 在 2022 冬奥会视频直播应用中的服务网格实践
一文带你彻底厘清 Isito 中的证书工作机制
R language fitting ARIMA model: use the auto.arima function in the forecast package to automatically search for the best parameter combination, model order (p, d, q), set the seasonal parameter to spe
【云享新鲜】社区周刊·Vol.73- DTSE Tech Talk:1小时深度解读SaaS应用系统设计
How to use DevExpress controls to draw flowcharts?After reading this article, you will understand!