0
点赞
收藏
分享

微信扫一扫

第151章 SQL函数 %TRUNCATE



文章目录

  • ​​第151章 SQL函数 %TRUNCATE​​
  • ​​大纲​​
  • ​​参数​​
  • ​​描述​​
  • ​​示例​​

第151章 SQL函数 %TRUNCATE

将字符串截断为指定长度并应用 ​​EXACT​​ 排序规则的排序规则函数。

大纲

%TRUNCATE(expression[,length])

参数

  • ​expression​​​ - 字符串表达式,可以是列名、字符串文字或另一个函数的结果,其中基础数据类型可以表示为任何字符类型(例如​​CHAR​​​ 或​​VARCHAR2​​)。表达式可以是子查询。
  • ​length​​​ - 可选 — 截断长度,指定为整数。返回表达式的初始长度字符。如果省略长度,则​​%TRUNCATE​​​ 排序规则与​​%EXACT​​​ 排序规则相同。可以用双括号将长度括起来以抑制文字替换:((​​length​​))。

描述

​%TRUNCATE​​​ 将表达式截断为指定的长度,然后在 ​​EXACT​​ 排序规则序列中返回它。

​EXACT​​​ 排序规则首先按数字顺序排列纯数值(​​x=+x​​​ 的值),然后是字符串排序规则序列中的所有其他字符。 ​​EXACT​​​ 字符串整理顺序与 ​​ANSI​​​ 标准 ​​ASCII​​ 整理顺序相同:在大写字母字符之前整理数字,在小写字母字符之前整理大写字母字符。标点符号出现在序列中的多个位置。

​%TRUNCATE​​​ 通过 ​​NULL​​ 不变。

​%TRUNCATE​​ 是一个 SQL 扩展,用于 SQL 查找查询。

也可以使用 ​​TRUNCATE()​​ 方法调用从 ObjectScript 调用此函数:

DHC-APP>  WRITE $SYSTEM.SQL.TRUNCATE("This long string",9)
This long

示例

以下示例使用 ​​%TRUNCATE​​​ 返回 ​​Name​​ 值的前四个字符:

SELECT TOP 5 Name,%TRUNCATE(Name,4) AS ShortName
FROM Sample.Person

第151章 SQL函数 %TRUNCATE_排序规则

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

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

第151章 SQL函数 %TRUNCATE_database_02

以下示例在 ​​GROUP BY​​​ 子句中使用 ​​%TRUNCATE​​ 创建一个字母列表,该列表返回以每个字母开头的名称数量:

SELECT Name AS FirstLetter,COUNT(Name) AS NameCount 
FROM Sample.Person GROUP BY %TRUNCATE(Name,1) ORDER BY Name

第151章 SQL函数 %TRUNCATE_database_03

以下两个示例显示 ​​%TRUNCATE​​​ 如何执行 ​​EXACT​​​ 排序规则。第一个示例中的 ​​ORDER BY​​​ 将 ​​Home_Street​​​ 截断为两个字符。因为街道地址的前两个字符几乎总是数字,所以 ​​Home_Street​​ 字段按其前两个数字的数字顺序排列。

SELECT Name,Home_Street
FROM Sample.Person
ORDER BY %TRUNCATE(Home_Street,2)

第151章 SQL函数 %TRUNCATE_sql_04

第二个示例中的 ​​ORDER BY​​​ 将 ​​Home_Street​​​ 截断为四个字符。因为某些街道地址的第四个字符不是数字(例如空格),所以以四个(或更多)数字开头的 ​​Home_Street​​​ 值按数字顺序排列,然后是包含非数字的 ​​Home_Street​​ 值前四个字符中的字符按字符串顺序排列:

SELECT Name,Home_Street
FROM Sample.Person
ORDER BY %TRUNCATE(Home_Street,4)

第151章 SQL函数 %TRUNCATE_数据库_05



举报

相关推荐

0 条评论