我必须在SQL Server存储过程中按小时或按日获取数据。
为了按小时获取数据,我会使用Datepart(hh, Datecolumn)
并且每天都会使用Datepart(D, Datecolumn)
。
我正在使用像
这样的案例陈述 @Hourly = 1 then Datepart(hh, Datecolumn) Else Datepart(D, Datecolumn)
但我收到Datecolumn
子句
Group by
错误
如果没有像
那样编写两个单独的块,任何人都可以建议我如何处理这个问题If @Hourly=1
Select Datepart(hh, Datecolumn)
from Table
Group by Datepart(hh, Datecolumn)
Else
Select Datepart(D,Datecolumn)
from Table
Group by Datepart(D, Datecolumn)
答案 0 :(得分:1)
尝试在Case Statement
Group by
这样的内容
SELECT CASE
WHEN @Hourly = 1 THEN Datepart(Hour, Datecolumn)
ELSE Datepart(Day, Datecolumn)
END
FROM Table
GROUP BY CASE
WHEN @Hourly = 1 THEN Datepart(Hour, Datecolumn)
ELSE Datepart(Day, Datecolumn)
END
答案 1 :(得分:0)
DECLARE @Hourly BIT =1
SELECT CASE WHEN @Hourly=1 THEN Datepart(hh,Datecolumn) ELSE Datepart(D,Datecolumn) END
FROM TableName
GROUP BY CASE WHEN @Hourly=1 THEN Datepart(hh,Datecolumn) ELSE Datepart(D,Datecolumn) END