我有一个存储过程,它返回一些值的结果,但如果给定的输入日期是周末,我需要为所有列返回空值。
我使用了一个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
很乏味。
如果给定的日期是周末,有没有办法用空字符串返回列?任何帮助将非常感激
您可以应用如下技巧-
DECLARE @RunDate date = '20190504'
IF DATENAME(WEEKDAY, @RunDate) NOT IN ('Saturday','Sunday')
BEGIN
--Do the actual Logic
--For Example
SELECT * FROM your_table
END
ELSE
BEGIN
--Do the tricks
SELECT * FROM your_table
WHERE 1= 2 -- This will never return a row!! But the column names :)
END
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句