Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlserver中的模式匹配_Sql_Sql Server - Fatal编程技术网

sqlserver中的模式匹配

sqlserver中的模式匹配,sql,sql-server,Sql,Sql Server,我想检查“Key”是否遵循与“Raw_Key”相同的模式。 因此,我为此编写了以下代码 -------------------------------- ModelName | Key | Raw_Key| -------------------------------- Series 1 JKC VDQA JKC-VDQA Series 12 JKC-VDQAJ JKC-VDQA Series 3 JKCVDQA JKC-VDQA Seri

我想检查“Key”是否遵循与“Raw_Key”相同的模式。 因此,我为此编写了以下代码

--------------------------------
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

因为“钥匙”显然遵循了这个模式。为什么消息列仍然显示错误?我需要一个额外的专栏,因此我有案例陈述在这里。没有前导空格或尾随空格。

我认为您的逻辑是反向的:

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

你能在这里定义模式吗?只是空格被视为连字符,并且它们具有相同的字符数,或者字符需要匹配还是…?确认
Raw_Key
Key
列中没有尾随空格和前导空格。我看到的唯一“问题”是最后一行不应该给出“Error”。最后一行的
是否包含任何尾随空格?请尝试使用类似“JKC%VDQA”的
TRIM(Key)
。如果您确信自己的示例编写得很好,请检查它,如果您需要提供一个示例,因为正如您所看到的,提供的dbfiddle显示您的代码可以工作。
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
SELECT *,
       (CASE WHEN Key LIKE 'JKC%VDQA' AND Raw_key = 'JKC-VDQA' THEN '' ELSE 'Error' END) as  Message
FROM #Keys