当前位置:网站首页>SQL函数 %SQLUPPER
SQL函数 %SQLUPPER
2022-08-01 12:02:00 【用户7741497】
SQL函数 %SQLUPPER
将值排序为大写字符串的排序规则函数。
大纲
%SQLUPPER(expression[,maxlen])
%SQLUPPER expression参数
expression- 字符串表达式,可以是列名、字符串文字或另一个函数的结果,其中基础数据类型可以表示为任何字符类型(例如CHAR或VARCHAR)。表达式可以是子查询。maxlen- 可选 — 一个整数,指定整理后的值将被截断为maxlen的值。请注意,maxlen包括附加的前导空格。您可以用双括号将maxlen括起来以抑制文字替换:((maxlen))。
描述
SQLUPPER 是默认排序规则。
%SQLUPPER 将表达式转换为排序为(不区分大小写)大写字符串的格式。 %SQLUPPER 将所有字母字符转换为大写,从字符串中去除尾随空格(空格、制表符等),然后在字符串开头添加一个前导空格。这个附加的空格会导致 NULL 和数值被整理为字符串。
SQL 在将数字传递给函数之前将数值转换为规范形式(删除前导零和尾随零、扩展指数等)。 SQL 不会将数字字符串转换为规范形式。
因为 %SQLUPPER 将空格附加到所有值,所以它将 NULL 值作为空格进行整理,字符串长度为 1。 %SQLUPPER 将任何仅包含空格(空格、制表符等)的值整理为 SQL 空字符串 ('')。当 %SQLUPPER 将空格附加到空(零长度)字符串时,它会将空格加上空字符串的内部表示形式 $CHAR(0) 进行整理,从而导致字符串长度为 2。
可选的 maxlen 参数在索引或整理时将转换后的表达式字符串截断为指定的字符数。例如,如果插入带有 maxlen 截断的字符串,则插入完整的字符串,并且可以通过 SELECT 语句检索;此字符串的全局索引被截断为指定长度。这意味着 ORDER BY 和比较操作仅计算截断的索引字符串。这种截断对于对超过下标的最大字符长度的字符串进行索引特别有用。使用 maxlen 参数,如果需要对长字段进行索引,可以使用截断长度参数。
%SQLUPPER 转换表达式后执行 maxlen 截断;如果 maxlen 超过转换后的表达式的长度,则不添加填充。最大字符串长度为 3,641,144 个字符; maxlen 没有强制执行最大值。
可以使用 %SYSTEM.Util 类的 Collation() 方法在 ObjectScript 中执行相同的排序规则转换:
DHC-APP> WRITE $SYSTEM.Util.Collation("The quick, BROWN fox.",7)
THE QUICK, BROWN FOX.也可以使用 SQLUPPER() 方法调用从 ObjectScript 调用此函数:
DHC-APP> WRITE $SYSTEM.SQL.SQLUPPER("The quick, BROWN fox.")
THE QUICK, BROWN FOX.这两种方法都支持 SQLUPPER 转换后的截断。请注意,截断长度必须包括附加的空白:
DHC-APP>WRITE $SYSTEM.Util.Collation("The quick, BROWN fox.",7,6)
THE Q
DHC-APP>WRITE $SYSTEM.SQL.SQLUPPER("The quick, BROWN fox.",6)
THE Q注意:要将系统范围的默认排序规则从 %SQLUPPER(不区分大小写)更改为 %SQLSTRING(区分大小写),请使用以下命令:
WRITE $$SetEnvironment^%apiOBJ("collation","%Library.String","SQLSTRING")发出此命令后,必须清除索引,重新编译所有类,然后重建索引。不要在其他用户访问表的数据时重建索引。这样做可能会导致查询结果不准确。
其他大小写转换函数
%SQLUPPER 函数是 SQL 中转换数据值以进行不区分大小写的比较或排序规则的首选方法。 %SQLUPPER 在数据的开头添加一个前导空格,这会强制将数字数据和 NULL 值解释为字符串。
以下是转换数据值大小写的其他函数:
UPPER和UCASE:将字母转换为大写,对数字字符、标点字符、嵌入空格以及前导和尾随空格没有影响。不强制将数字解释为字符串。LOWER和LCASE:将字母转换为小写,对数字字符、标点字符、嵌入空格以及前导和尾随空格没有影响。不强制将数字解释为字符串。%SQLSTRING:不转换字母大小写。但是,它会在数据的开头添加一个前导空格,这会强制将数字数据和 NULL 值解释为字符串。
字母数字整理顺序
大小写转换函数使用不同的算法整理以数字开头的数据值,如下所示:
%MVR- 6 Oak Avenue, 66 Main Street, 66 Oak Street, 641 First Place, 665 Ash Drive, 672 Main Court, 709 Oak Avenue, 5988 Clinton Avenue, 6023 Washington Court, 6090 Elm Court, 6185 Clinton Drive, 6209 Clinton Street, 6284 Oak Drive, 6310 Franklin Street, 6406 Maple Place, 6572 First Avenue, 6643 First Street, 6754 Oak Court, 6986 Madison Blvd, 7000 Ash Court,%SQLUPPER、%SQLSTRING和所有其他大小写转换函数 - 5988 Clinton Avenue, 6 Oak Avenue, 6023 Washington Court, 6090 Elm Court, 6185 Clinton Drive, 6209 Clinton Street, 6284 Oak Drive, 6310 Franklin Street, 6406 Maple Place, 641 First Place, 6572 First Avenue, 66 Main Street, 66 Oak Street, 6643 First Street, 665 Ash Drive, 672 Main Court, 6754 Oak Court, 6986 Madison Blvd, 7000 Ash Court, 709 Oak Avenue,
示例
以下查询使用带有字符串截断的 %SQLUPPER 以大写形式返回每个名称的前两个字符。请注意,字符串截断是 3(不是 2),因为 %SQLUPPER 添加了前导空格。 ORDER BY 子句使用这个两个字符的字段将行放在一个粗略的排序顺序中:
SELECT Name, %SQLUPPER(Name,3) AS FirstTwo
FROM Sample.Person
ORDER BY FirstTwo边栏推荐
- Alibaba Cloud Official Redis Development Specification
- 初级必备:单例模式的7个问题
- 华硕和微星多款产品将升级英特尔Arc A380和A310显卡
- Find objects with the same property value Cumulative number Summarize
- 一文带你读懂云原生、微服务与高可用
- R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用stat_central_tendency函数在密度中添加均值竖线并自定义线条类型
- 表连接详解
- STM32 CAN过滤器配置详解
- Qt获取文件夹下所有文件
- ddl and dml in sql (the difference between database table and view)
猜你喜欢

Find objects with the same property value Cumulative number Summarize

Apex installation error

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

ECCV22|只能11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT
![[5 days countdown] to explore the secret behind the great quality promotion, gift waiting for you to take of $one thousand](/img/de/1e6069e84183d1400c90a6ec574f72.png)
[5 days countdown] to explore the secret behind the great quality promotion, gift waiting for you to take of $one thousand

数字化转型实践:世界级2B数字化营销的方法框架

Data frame and remote frame of CAN communication

Alibaba Cloud Official Redis Development Specification

MarkDown公式指导手册

阿里云官方 Redis 开发规范
随机推荐
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
bat倒计时代码
A new generation of ultra-safe cellular batteries, Sihao Airun goes on sale starting at 139,900 yuan
[CLion] CLion always prompts "This file does not belong to any project target xxx" solution
【公开课预告】:超分辨率技术在视频画质增强领域的研究与应用
Qt get all files in a folder
找出相同属性值的对象 累加数量 汇总
How do programmers solve online problems gracefully?
[5 days countdown] to explore the secret behind the great quality promotion, gift waiting for you to take of $one thousand
Complete Raiders of JS Data Type Conversion
R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用stat_central_tendency函数在密度中添加均值竖线并自定义线条类型
leetcode/submatrix element sum
Favorites|Mechanical Engineer Interview Frequently Asked Questions
如何将第三方服务中心注册集成到 Istio ?
R语言ggplot2可视化:使用ggpubr包的ggscatter函数可视化散点图、使用xscale函数指定X轴坐标轴度量调整方式、设置x轴坐标为scientific使用科学计数法显示坐标值
Transfer learning to freeze the network:
Ts-Map 类的使用
阿里云官方 Redis 开发规范
易周金融分析 | 银行ATM机智能化改造提速;互联网贷款新规带来挑战
重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”