我正在使用SQL、、db2-400。我需要帮助写一个案例陈述,寻找一个字段的长度,并返回一个空白,如果它不等于14,我尝试了许多方法,但没有成功,下面是我的最新尝试。
CASE
WHEN LENGTH(TRIM(FFIUPCN) <> '14'
THEN ''
ELSE
FFIUPCN
END AS "UPC (if applicable)"我得到的错误是令牌"<>“无效。
发布于 2022-03-24 20:32:48
主要问题是您缺少一个)
CASE
WHEN LENGTH(TRIM(FFIUPCN)) <> 14
THEN ''
ELSE
FFIUPCN
END AS "UPC (if applicable)"但是,您不应该将length()返回的数字与累赘的'14'进行比较。但是Db2正在隐式地转换它。
发布于 2022-03-25 14:36:35
对于多个条件,可以嵌套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 tablehttps://stackoverflow.com/questions/71608932
复制相似问题