SQL 查询 - 关键字“LIKE”附近的语法不正确

use*_*912 2 sql sql-server-2008

以下查询在“CASE WHEN NOT LIKE”处给出错误(消息 156,级别 15,状态 1,第 14 行关键字“LIKE”附近的语法不正确)

SELECT     
 TimeStamp, 
 TimeStampNS, 
 ISNULL(TagName, 'NoTag') AS TagName, 
 Message, 
 ConditionName, 
 ISNULL(TagName, 'NoTag') + '.' + ConditionName AS Source, 
 CENTUMMsgId, 
 StationName,  
 ISNULL(AlarmLevel,5) AS AlarmLevel,
 ActiveTime, 
 ActorID, 
 ISNULL(AlarmOff,0) AS AlarmOff,
 CASE WHEN  NOT LIKE '% ACK%' AND CENTUMMsgId IN (4353, 4355, 4609) THEN 1 ELSE 0 END AS RaiseAll, 
    CASE WHEN  LIKE '% ACK%' THEN 1 ELSE 0 END AS Acknowledge, 
    CASE WHEN CENTUMMsgId IN (4354, 4356, 4358, 4614) AND Message NOT LIKE '% ACK%' THEN 1 ELSE 0 END AS Normal, 
 PlantHierarchy, 
 'EXAOPC' AS SourceType
FROM QHistorianData.dbo.vEXAOPCCSProcessAlarm
Run Code Online (Sandbox Code Playgroud)

你们知道发生了什么事吗...我想我的一切都是正确的。

预先感谢您的任何帮助。

Adi*_*tya 5

我认为您错过了这里的属性名称:

CASE WHEN <ATTRIBUTE-NAME> NOT LIKE '% ACK%' AND CENTUMMsgId IN (4353, 4355, 4609) THEN 1   ELSE 0 END AS RaiseAll, 
CASE WHEN  <ATTRIBUTE-NAME> LIKE '% ACK%' THEN 1 ELSE 0 END AS Acknowledge, 
CASE WHEN CENTUMMsgId ...
Run Code Online (Sandbox Code Playgroud)