DB2 SQL Query Trim内部修剪

时间:2015-04-21 14:04:38

标签: sql db2 trim

我正在将一些SQL查询转移到C#代码中,现在我遇到了解以下查询的问题。 到目前为止,我对以下查询的理解是:如果PREFIX介于099之间,那么修剪PREFIX,但|| '-' ||在这里意味着什么?我对第3行的理解是在第2行完成修剪功能后,再做一次修剪,但我也不认识第3行的语法。这是DB2。

            RETURN CASE WHEN PREFIX BETWEEN '00' AND '99'      //line 1               
            THEN TRIM(PREFIX) || '-' ||                        //line 2  
            TRIM(TRIM(L '0' FROM DIGITS(CLNUMBER)))            //line 3

3 个答案:

答案 0 :(得分:1)

您的代码执行以下操作。

第1行:如果前缀介于'00''99'

之间

第2行:然后从前缀修剪空格,然后追加-

第3行:然后通过首先从CLNUMBER删除前导0来附加CLNUMBER

您可以查找TRIM函数here

的语法

答案 1 :(得分:1)

  • DIGITS(CLNUMBER)将存储在CLNUMBER中的数字作为带有前导零的字符串返回。
  • TRIM(L '0' FROM something)从某些内容中删除前导零。
  • TRIM(something)从某些东西中移除了领先和训练空白。
  • ||连接字符串。

PREFIX是一个字符串。如果它包含两位数字,则完成一些处理:

  1. 首先你修剪了这个数字,但由于条件没有空白,所以你得到原始数字字符串,例如' 12&#39 ;. (条件适用于' 01'但忽略' 1'或' 1'。)
  2. 然后' - '添加,所以你有' 12 - '。
  3. 然后你将CLNUMBER作为一个带有前导零的字符串,删除了前导和训练空白。让我们说CLNUMBER包含' 0345'然后你得到' 345'
  4. 然后这也会被连接起来,你终于得到了12-345'。

答案 2 :(得分:0)

或者我们可以将其用作CAST(STRING_NAME作为VARCHAR(根据要求不是))这适用于删除固定否的尾随空格