DB2 SQL 查询 Trim 里面 trim

DB2 SQL Query Trim inside trim

我正在将一些 SQL 查询转换为 C# 代码,现在我无法理解以下查询。 到目前为止,我对以下查询的理解是:如果 PREFIX099 之间,则 trim PREFIX,但是 || '-' || 是什么意思?是指这里?我对第3行的理解是在完成第2行的trim函数后,再做一个trim,但我也不认识第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

您的代码执行以下操作。

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

之间

第 2 行:然后 trim 前缀中的空格,然后追加 -

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

您可以查找 TRIM 函数 here

的语法
  • DIGITS(CLNUMBER) returns 存储在 CLNUMBER 中的数字作为带前导零的字符串。
  • TRIM(L '0' FROM something) 从某些内容中删除前导零。
  • TRIM(something) 从某些内容中删除前导和训练空白。
  • ||连接字符串。

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

  1. 首先你得到那个数字修剪,但由于条件不能有空白,所以你得到原始数字字符串,例如'12'。 (该条件适用于“01”但忽略“1”或“1”。)
  2. 然后添加'-',所以你有'12-'。
  3. 然后您将获得 CLNUMBER 作为字符串,其中删除了前导零以及前导和训练空白。假设 CLNUMBER 包含“0345”,那么您将得到“345”。
  4. 然后这也被连接起来,你最终得到'12-345'。

或者我们可以使用 as CAST( STRING_NAME as VARCHAR(no as per required) ) 这适用于删除固定 no

的尾随空格