[英]SQL Server: how to add case statement to select
我正在使用以下选择从数据库表中查询日期。
此查询的输入(ms)来自xml字符串,然后存储过程循环遍历xml中的所有单个值,以为每个值返回一个确定的数字(整数)。 到目前为止,这个工作正常。
如果输入(ms)为空/什么都不是,有没有办法我可以返回占位符数字(如99999)? 目前,在我无法用来将其标识为0的情况下,以下返回0,在其他情况下也可能是有效的结果。
到目前为止,我的存储过程:
SELECT ms as date,
type,
(
SELECT COUNT(calendar_dt)
FROM Calendar
WHERE day_of_week NOT IN (1, 7)
AND calendar_dt > GETDATE()
AND calendar_dt <= ms
) as bDays
FROM @dates
FOR XML PATH('ms'), ELEMENTS, TYPE, ROOT('ranks')
蒂姆,在此先感谢您的帮助。
如果“ ms”列实际上为NULL或已填充,则只需使用ISNULL。
http://technet.microsoft.com/en-us/library/ms184325.aspx
SELECT ISNULL(ms, 99999) AS date
但是,如果该列可以包含一个空字符串,该字符串与NULL不同,则也可以使用NULLIF。
http://technet.microsoft.com/en-us/library/ms177562.aspx
SELECT ISNULL(NULLIF(ms,''), 99999) AS date
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.