文章目录

  • 第129章 SQL函数 %SQLUPPER
  • 大纲
  • 参数
  • 描述
  • 其他大小写转换函数
  • 字母数字整理顺序
  • 示例

第129章 SQL函数 %SQLUPPER

将值排序为大写字符串的排序规则函数。

大纲

%SQLUPPER(expression[,maxlen]) %SQLUPPER expression

参数

  • expression - 字符串表达式,可以是列名、字符串文字或另一个函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHARVARCHAR)。表达式可以是子查询。
  • 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 值解释为字符串。

以下是转换数据值大小写的其他函数:

  • UPPERUCASE:将字母转换为大写,对数字字符、标点字符、嵌入空格以及前导和尾随空格没有影响。不强制将数字解释为字符串。
  • LOWERLCASE:将字母转换为小写,对数字字符、标点字符、嵌入空格以及前导和尾随空格没有影响。不强制将数字解释为字符串。
  • %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

以下示例将 %SQLUPPER 应用于子查询:

SELECT TOP 5 Name, %SQLUPPER((SELECT Name FROM Sample.Company),10) AS Company
FROM Sample.Person

第129章 SQL函数 %SQLUPPER相关推荐

  1. 第153章 SQL函数 UCASE

    文章目录 第153章 SQL函数 UCASE 大纲 参数 描述 示例 第153章 SQL函数 UCASE 将字符串中的所有小写字母转换为大写字母的大小写转换函数. 大纲 UCASE(string-ex ...

  2. 第九十一章 SQL函数 LOWER

    文章目录 第九十一章 SQL函数 LOWER 大纲 参数 描述 示例 第九十一章 SQL函数 LOWER 将字符串表达式中的所有大写字母转换为小写字母的大小写转换函数. 大纲 LOWER(string ...

  3. 第六十九章 SQL函数 JSON_OBJECT

    文章目录 第六十九章 SQL函数 JSON_OBJECT 大纲 参数 描述 选择模式和排序 ABSENT ON NULL 示例 第六十九章 SQL函数 JSON_OBJECT 将数据作为JSON对象返 ...

  4. 第七十三章 SQL函数 LCASE

    文章目录 第七十三章 SQL函数 LCASE 大纲 参数 描述 示例 第七十三章 SQL函数 LCASE 将字符串中的所有大写字母转换为小写字母的大小写转换函数. 大纲 LCASE(string-ex ...

  5. 第155章 SQL函数 UPPER

    文章目录 第155章 SQL函数 UPPER 大纲 参数 描述 示例 第155章 SQL函数 UPPER 将字符串表达式中的所有小写字母转换为大写字母的大小写转换函数. 大纲 UPPER(expres ...

  6. 第六十四章 SQL函数 INSTR

    文章目录 第六十四章 SQL函数 INSTR 大纲 参数 描述 INSTR, CHARINDEX, POSITION和$FIND 示例 第六十四章 SQL函数 INSTR 返回子字符串在字符串中的位置 ...

  7. 第四十六章 SQL函数 DAY

    文章目录 第四十六章 SQL函数 DAY 大纲 参数 描述 第四十六章 SQL函数 DAY 返回日期表达式的月份日期的日期函数. 大纲 DAY(date-expression){fn DAY(date ...

  8. 第二十四章 SQL函数 CEILING

    文章目录 第二十四章 SQL函数 CEILING 大纲 参数 描述 示例 第二十四章 SQL函数 CEILING 数值函数,返回大于或等于给定数值表达式的最小整数. 大纲 CEILING(numeri ...

  9. 第九十五章 SQL函数 MINUTE

    文章目录 第九十五章 SQL函数 MINUTE 大纲 参数 描述 示例 第九十五章 SQL函数 MINUTE 返回日期时间表达式的分钟的时间函数. 大纲 {fn MINUTE(time-express ...

  10. 第130章 SQL函数 SQRT

    文章目录 第130章 SQL函数 SQRT 大纲 参数 描述 示例 第130章 SQL函数 SQRT 返回给定数值表达式的平方根的数值函数. 大纲 SQRT(numeric-expression){f ...

最新文章

  1. 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
  2. 解决猴子选大王问题(用C,原创)
  3. 关于如何学好网络 送给学习网络工程的学生
  4. (39)FPGA按键设计(第8天)
  5. HTTP Error 502.5 - Process Failure 解决方案
  6. 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理
  7. 牛客:阶乘结果换算进制后得到数字的尾部有几个0
  8. Linux: 多线程
  9. [十大谬论]常见的逻辑谬误与批判方法
  10. PS-第二天-图像合成与渐变工具
  11. 阿里云虚拟主机和服务器的区别
  12. 4g能用吗64java,4g内存能不能装64位系统吗_电脑内存是4g可以安装64位系统吗
  13. android型号手机怎么截图,安卓手机怎么截图 手机截图超简单图文教程
  14. 1、高等数学 —求和运算法则
  15. 32python腾讯位置大数据2.0版本成功输出北京位置数据(续接上2019年8月21日停止服务的内容)
  16. 项目经理手册-项目经理需要铭记在心的话
  17. 什么是Java的反射机制?
  18. name norm is not defined
  19. 项目管理论坛_【一线】这届项目管理论坛硬货满满!
  20. Android支付接入(七):Google In-app-Billing

热门文章

  1. linux配置web页面登录密码,在Linux下通过WEB认证方式上网
  2. 浅谈在windows系统下esp8266和esp32开发共存一个eclipse编译器,非安信可一体化环境,而是搭建自己的eclipes环境。
  3. If you want to be loved, be lovable.
  4. 神经网络未来发展趋势,神经网络未来发展前景
  5. 最新xmind2022版思维导图如何使用详解教程
  6. 飞秋官方下载 找了很久的
  7. MCSE 2012之应用程序控制策略AppLocker
  8. 中国象棋AI在线弈游戏源码
  9. 计算机硬件大型作业报告,计算机硬件技术大作业报告 (2).doc
  10. Phaser3 点击事件