--------------------------------
ModelName | Key | Raw_Key|
--------------------------------
Series 1 JKC VDQA JKC-VDQA
Series 12 JKC-VDQAJ JKC-VDQA
Series 3 JKCVDQA JKC-VDQA
Series 4 JKCVDQA MZQ-DWA
我想检查'Key'是否遵循与'Raw_Key'相同的模式。 因此,我为此编写了以下代码。
SELECT *,
CASE WHEN Key LIKE 'JKC%VDQA' AND Raw_key<>'JKC-VDQA' THEN 'Error' ELSE '' END Message
FROM #Keys
但是代码给出了这样的输出。
ModelName | Key | Raw_Key| Message
-------------------------------------------
Series 1 JKC VDQA JKC-VDQA Error
Series 2 JKC-VDQAJ JKC-VDQA Error
Series 3 JKCVDQA JKC-VDQA Error
Series 4 JKCVDQA MZQ-DWA Error
因为“键”显然遵循该模式。为什么“消息”列仍显示错误?我需要额外的一列,因此这里有案例说明。没有前导或尾随空格。
答案 0 :(得分:0)
我认为您的逻辑是倒退的:
SELECT *,
(CASE WHEN Key LIKE 'JKC%VDQA' AND Raw_key = 'JKC-VDQA' THEN '' ELSE 'Error' END) as Message
FROM #Keys