【发布时间】:2019-05-17 06:47:59
【问题描述】:
我有一个存储过程,它返回带有一些值的结果,但如果给定的输入日期是周末,我需要为所有列返回空值。
我使用IF 子句检查数据名并返回空结果集,但如果IF 子句为真,我必须键入该存储过程中的每一列以返回空值。
我的代码:
declare @RunDate date = '20190504'
IF DATENAME(WEEKDAY, @RunDate) NOT IN ('Saturday','Sunday')
BEGIN
Do the actual Logic
END
ELSE
' ' as field1, ' ' as field2,..........' ' as fieldN
这返回了我期望的正确结果,但是存储过程更多,每个存储过程可能有多个列,所以输入
' ' as field1, ' ' as field2,.........., ' ' as fieldN
很乏味。
如果给定日期是周末,有什么方法可以返回带有空字符串的列?任何帮助将不胜感激
【问题讨论】:
-
嗨,我认为选择''作为field1,''作为field2,............''作为fieldN做你想做的事
-
不返回任何内容并让您的应用检查是否没有返回任何行。
-
您可以使用合适的
union all select '', '', ....来避免输入字段别名。当然,Dale 的方法要好得多,除非您的代码的某些部分期望记录集结构保持不变。
标签: sql sql-server tsql sql-server-2012