美文网首页
第151章 SQL函数 %TRUNCATE

第151章 SQL函数 %TRUNCATE

作者: Cache技术分享 | 来源:发表于2022-05-24 07:49 被阅读0次

    第151章 SQL函数 %TRUNCATE

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

    大纲

    %TRUNCATE(expression[,length])
    

    参数

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

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

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

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:第151章 SQL函数 %TRUNCATE

          本文链接:https://www.haomeiwen.com/subject/ygfrprtx.html