当前位置:网站首页>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此示例在不更改字母大小写的情况下返回截断的值。
边栏推荐
- CloudCompare&PCL ICP配准(点到面)
- 并发编程10大坑,你踩过几个?
- 【云享新鲜】社区周刊·Vol.73- DTSE Tech Talk:1小时深度解读SaaS应用系统设计
- Beyond Compare 4 试用期到期
- Several methods of appending elements are commonly used in js: append, appendTo, after, before, insertAfter, insertBefore, appendChild
- Dameng replaces the officially authorized dm.key
- 博弈论(Depu)与孙子兵法(42/100)
- 将同级数据处理成树形数据
- Qt获取文件夹下所有文件
- [Open class preview]: Research and application of super-resolution technology in the field of video image quality enhancement
猜你喜欢

重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”

How to use DevExpress controls to draw flowcharts?After reading this article, you will understand!

找出相同属性值的对象 累加数量 汇总

基于ArkUI eTS开发的坚果食谱(NutRecipes)

The CAN communication standard frame and extended frame is introduced

STM32 CAN过滤器配置详解

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

CAN通信的数据帧和远程帧

故障007:dexp导数莫名中断

Beyond Compare 4 trial period expires
随机推荐
收藏|机械工程师面试常问问题
Data frame and remote frame of CAN communication
每日一题:连续子数组的最大和(动态规划)
表达式引擎在转转平台的实践
实现集中式身份认证管理的案例
ddl and dml in sql (the difference between database table and view)
How to use DevExpress controls to draw flowcharts?After reading this article, you will understand!
leetcode每日一题:字符串压缩
【公开课预告】:超分辨率技术在视频画质增强领域的研究与应用
Aeraki Mesh became CNCF sandbox project
Envoy source code flow chart
ACL 2022 | 文本生成的相关前沿进展
R language ggplot2 visualization: use ggpubr package ggscatter function visualization scatterplot, use xscale wasn't entirely specified X axis measurement adjustment function, set the X coordinate for
[Open class preview]: Research and application of super-resolution technology in the field of video quality enhancement
Sparse representation - study notes
AI目标分割能力,无需绿幕即可实现快速视频抠图
小程序插件如何帮助开发者受益?
Favorites|Mechanical Engineer Interview Frequently Asked Questions
这项工作事关中小学生生命安全!五部门作出联合部署
【随心笔记】假期快过去了,都干了点什么