我使用以下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')
非常感谢提供任何帮助,蒂姆。
答案 0 :(得分:2)
如果列“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