Sql server SQL CASE语句(将CASE语句保留在WHERE子句中)
我有一个表名为:Sql server SQL CASE语句(将CASE语句保留在WHERE子句中),sql-server,tsql,case,where-clause,sql,Sql Server,Tsql,Case,Where Clause,Sql,我有一个表名为: Ext_Meeting_Status 这有两个字段 分机会议状态ID 正文 这些数值是: EXT_Meeting_Status_ID Text 1 Draft 2 Published 3 Cancelled 4 Closed 如果日期是今天,如何返回“已发布”的“文本”字段,否则返回“关闭” 我尝试使用: select * from Ext_Meeting_Status where GETDATE() = CASE WHEN ( GETDATE
Ext_Meeting_Status
这有两个字段
EXT_Meeting_Status_ID Text
1 Draft
2 Published
3 Cancelled
4 Closed
如果日期是今天,如何返回“已发布”的“文本”字段,否则返回“关闭”
我尝试使用:
select * from Ext_Meeting_Status
where
GETDATE() = CASE
WHEN ( GETDATE() = '2010-12-13 10:02:31.560' )
THEN ( Ext_Meeting_Status_ID=2)
ELSE ( Ext_Meeting_Status_ID=4)
END
我认为这是不可能的。您可能希望尝试将其全部放入子选择中,并在其中使用案例
select * from Ext_Meeting_Status
where Ext_Meeting_Status_ID =
CASE WHEN (GETDATE() = '2010-12-13 10:02:31.560')
THEN (2)
ELSE (4)
END
我相信这应该行得通
还有一个注意事项:将当前日期与精确的毫秒级进行比较可能不起作用,因为此时可能无法执行查询
你可以试试这样的
Select getdate(), * from #Temp
Where ID = Case when getdate() between '2010-12-13 05:21:08.240' and '2010-12-13 05:22:08.240'
Then 1
Else 2
End
谢谢你,伙计,听起来很棒