任何人都可以帮助我在当时使用案例来写这个条件。
SELECT CASE
WHEN D.AppEmployeeID = D.ByEmployeeID AND D.CommentStatus = 'A' THEN D.CreatedOn, E.FirstName, E.LastName, D.Remarks, D.Attachment
WHEN D.AppEmployeeID <> D.ByEmployeeID AND D.CommentStatus = 'R' THEN D.CreatedOn, E.FirstName, E.LastName, D.Remarks, D.Attachment
FROM tbl_Conversation_History D
INNER JOIN tbl_Employee_Master E on D.ByEmployeeID = E.EmployeeID
WHERE D.AppEmployeeID = @EmployeeID AND D.ByEmployeeID IN (@EmployeeID, @ReportingMg, @DelegatedMgr) AND SubAppraisalID=@SubAppraisalID
AND D.Attachment IS NULL
ORDER BY D.CreatedOn DESC
答案 0 :(得分:0)
两件事:
CASE WHEN
应始终以END
结尾(在最后WHEN
之后,或在ELSE
之后,如果有)。CASE WHEN
只能在每个WHEN
之后返回一个值(如果存在,也会在ELSE
之后返回)。不允许使用多个值。因此,如果您希望5列依赖于相同的条件,那么您需要重复CASE WHEN
子句5次(每列一次)...或者可能将条件放在其他位置,例如在WHERE子句中。
答案 1 :(得分:0)
我不确定你的桌面结构。根据我的理解,您在查询中缺少END
语句。有关示例,请查看以下查询,了解如何使用CASE WHEN语句。
CREATE TABLE tempTable(Id int, Price int)
INSERT INTO tempTable VALUES(1,500)
INSERT INTO tempTable VALUES(1,1500)
INSERT INTO tempTable VALUES(1,2500)
INSERT INTO tempTable VALUES(1,3500)
SELECT
CASE
WHEN Price > 2000 THEN 'Over Priced'
WHEN Price > 1000 THEN 'Perfectly Priced'
ELSE 'Offer'
END as PriceRange
FROM tempTable