【发布时间】:2014-11-11 04:02:30
【问题描述】:
为什么我的case语句会抛出这个错误:
消息 102,第 15 级,状态 1,第 2 行 '=' 附近的语法不正确。
代码:
Create PROCEDURE [dbo].[Chart_SelectSmsComplaintsValidity]
@FromDate datetime,
@ToDate datetime
AS
BEGIN
Select COUNT(ReceivedMessages.ID) As ReceivedMessageID,
CASE ReceivedMessages.IsComplaint WHEN ReceivedMessages.IsComplaint=0
THEN 'Incomplete'
WHEN ReceivedMessages.IsComplaint=1 THEN 'Complete'
WHEN ReceivedMessages.IsComplaint=-3 THEN 'Inappropriate' END from ReceivedMessages
where ReceivedMessages.ReceivedDateTime >= @FromDate AND ReceivedMessages.ReceivedDateTime <= @ToDate
Group By ReceivedMessages.IsComplaint
END
【问题讨论】:
-
这是因为您使用的是
CASE columnname WHEN columnvalue形式而不是CASE WHEN expression THEN return WHEN expression THEN return形式的CASE。只需列出值1,而不是像IsCompliant=1这样的完整表达式
标签: sql sql-server tsql