当前位置:网站首页>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此示例在不更改字母大小写的情况下返回截断的值。
边栏推荐
- 博弈论(Depu)与孙子兵法(42/100)
- Flutter Widget 如何启用和屏蔽点击事件
- Apex installation error
- 找出相同属性值的对象 累加数量 汇总
- Qt获取文件夹下所有文件
- 【CLion】CLion 总是提示 “This file does not belong to any project target xxx” 的解决方法
- Qt get all files in a folder
- pandas连接oracle数据库并拉取表中数据到dataframe中、筛选当前时间(sysdate)到一个小时之前的所有数据(筛选一个小时的范围数据)
- Js手写函数之new的模拟实现
- [Unity3D Plugin] AVPro Video Plugin Share "Video Player Plugin"
猜你喜欢
随机推荐
重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”
【CLion】CLion 总是提示 “This file does not belong to any project target xxx” 的解决方法
初级必备:单例模式的7个问题
万字解析:vector类
【社区明星评选】第24期 8月更文计划 | 笔耕不辍,拒绝躺平!更多原创激励大礼包,还有华为WATCH FIT手表!
Find objects with the same property value Cumulative number Summarize
How to get the address of WeChat video account (link address of WeChat public account)
mysql进阶(二十二)MySQL错误之Incorrect string value中文字符输入错误问题分析
[Open class preview]: Research and application of super-resolution technology in the field of video quality enhancement
Qt获取文件夹下所有文件
What is MNIST (what does plist mean)
Promise learning (4) The ultimate solution for asynchronous programming async + await: write asynchronous code in a synchronous way
字体反爬之好租
leetcode/submatrix element sum
并发编程10大坑,你踩过几个?
轮询和长轮询的区别
Istio Meetup China: Full Stack Service Mesh - Aeraki Helps You Manage Any Layer 7 Traffic in an Istio Service Mesh
JS 中的 undefined 和 null 的区别
蔚来又一新品牌披露:产品价格低于20万
Complete Raiders of JS Data Type Conversion








