我需要帮助在 SQL db2-400 中定义 case 语句

I need help defining a case statement in SQL db2-400

我正在使用 SQL、IBM Data Studio、db2-400。我需要帮助编写一个 case 语句来查找字段的长度,如果不等于 14,则 returns 为空白,我尝试了很多方法都没有成功,下面是我最近的尝试。

CASE 
   WHEN LENGTH(TRIM(FFIUPCN) <> '14' 
     THEN '' 
   ELSE 
     FFIUPCN 
 END AS "UPC (if applicable)"

我得到的错误是令牌“<>”无效。

主要问题是您缺少 )

CASE 
   WHEN LENGTH(TRIM(FFIUPCN)) <> 14 
     THEN '' 
   ELSE 
     FFIUPCN 
 END AS "UPC (if applicable)"

但您不应该将 length() 返回的数字与字符串 '14' 进行比较。但是 Db2 正在隐式转换它。

对于多个条件,您可以嵌套 case 语句

   Select
        case when FIUPCN+FFIUPCN2 = 0 
           then case when FIUPCN >= value  then FIUPCN + 1 
                else FIUPCN + 2 end
        else
           case when FIUPCN >= value
               then case when FIUPCN <> '' 
                       then FIUPCN + 3
                    else prvca1 end
           else 
            case 
                when FIUPCN >= FIUPCN2 and FIUPCN3 <> 0 then FIUPCN + 4
                when FIUPCN >= FIUPCNX and FIUPCNY <> 0 then FIUPCN + 5
            else prvca1 end
        end
    end 
    from table