使用条件语在SELECT语句中拉条件数据时遇到了一些困难。
外部条件检查值是否为null,内部条件检查值是否包含特定字符集。
选择语句:
refID = CASE externalID
WHEN IS NOT NULL THEN CASE internalType
WHEN CONTAINS(internalType,'B1') THEN 'C1' + externalID
WHEN CONTAINS(internalType,'B2') THEN 'C2' + externalID
ELSE 'Ext'
END
ELSE 'N/A'
END
不幸的是,运行此代码会以错误消息“ IS附近的错误语法”结束
答案 0 :(得分:4)
将字段移动到案例中
refID = CASE
WHEN externalID IS NOT NULL THEN
CASE
WHEN internalType like '%B1%' THEN 'C1' + externalID
WHEN internalType like '%B2%' THEN 'C2' + externalID
ELSE 'Ext'
END
ELSE 'N/A'
END
答案 1 :(得分:1)
嗨
在这种情况下,您可以使用 INSTR 功能,
refID = CASE externalID
WHEN IS NOT NULL THEN CASE internalType
WHEN INSTR(internalType,'B1') THEN 'C1' + externalID
WHEN INSTR(internalType,'B2') THEN 'C2' + externalID
ELSE 'Ext'
END
ELSE 'N/A'
END
INSTR - instring函数检查所需的字符串或模式并处理数据