【问题标题】:SQL SERVER CASE STATEMENT CLARIFICATIONSQL SERVER 案例声明说明
【发布时间】:2010-08-19 09:23:19
【问题描述】:
我必须执行一个语句,例如(我需要和关键字以及 when )。
select
'Is Allowed'= case A.Column
when
A.Column='XXXX' and Isnull(A.AnotherColumn,'')<>'' then 'Yes'
else
'No' end from TableName
我遇到语法错误,如何在不影响条件的情况下重写它。
【问题讨论】:
标签:
asp.net
sql
sql-server-2005
【解决方案1】:
试试:
select case when A.Column='XXXX' and Isnull(A.AnotherColumn,'')<>'' then 'Yes'
else 'No' end as 'Is Allowed'
from TableName
【解决方案2】:
SELECT
CASE A.Column
WHEN 'Is Allowed THEN 'First'
WHEN 2 THEN 'Second'
WHEN 3 THEN 'Third'
ELSE 'Other'
END
是制作 CASE 的一般方式(这是您的问题)。但是,您的查询/逻辑看起来有点复杂。更详细的答案/查询是可能的,但可能会使用更多的语句/嵌套 CASE。
【解决方案3】:
仔细看看CASE (Transact-SQL)
SELECT CASE
WHEN some boolean expression
THEN value
ELSE default value
END
或
SELECT CASE value to check
WHEN vlue to check agains
THEN value
ELSE default value
END