我需要帮助为视图编写一个case语句。基表有2列,我会参考:'舞台'和'是否'。条件CASE语句语法
如果Stage列为1,并且YesNo列为1,则需要CASE语句在视图中将其显示为“否”如果舞台列为1,并且YesNo列为0,则需要CASE语句在视图中将其显示为“是”。如果Stage列为1,并且YesNo列为NULL,则需要CASE语句在视图中将其显示为NULL。如果舞台不是1,我需要YesNo列在视图中显示为NULL。
这是我认为是正确的逻辑,但是当我尝试运行它时,我得到了有关单词'AS'的语法错误。有什么建议么?
CASE
WHEN a.Stage = 1 and a.YesorNo = 1 THEN 'No'
ELSE WHEN a.Stage = 1 and a.YesorNo = 0 THEN 'Yes'
END AS NewViewColumn
我可以:
或者使用说有一个名为'YesOrNo'的专栏,其中1表示'不',这让我有点内心的哭泣。 –
我强烈建议您注意Matt的评论并修复您的命名/数据方案。首先,在编程中,(几乎?)通常是正确的,1表示真,0表示假。反转这是非常奇怪的,并且使你的代码难以阅读和理解。其次,尽管你没有提到你的表名“YesOrNo”不是一个很好的列名,因为它是对问题的回答,而不是属性。一个更好的名字将是'IsDeleted'或'NeedsExpressHandling'或'HasPermission'或者明显的True/False。 – Pondlife