Oracle到SQL Server(从字符串转换)
这段代码在Oracle中有效,但在SQL server中失败。我是SQL server的新手,不确定解决这个问题的正确方法是什么Oracle到SQL Server(从字符串转换),sql,sql-server,Sql,Sql Server,这段代码在Oracle中有效,但在SQL server中失败。我是SQL server的新手,不确定解决这个问题的正确方法是什么 SELECT CASE GROUPING(HireDate) when 0 then HireDate else 'TOTAL' end HireDate, count(HireDate) as count_hire_date FROM Faculty GROUP BY ROLLUP(HireDate); 试图得到这
SELECT CASE GROUPING(HireDate)
when 0 then HireDate
else 'TOTAL'
end HireDate,
count(HireDate) as count_hire_date
FROM Faculty
GROUP BY ROLLUP(HireDate);
试图得到这样的东西:
hire_date count_hire_date
1995 10
1996 20
1997 30
TOTAL 60
我是否在SQL server中使用某种类型的强制转换,或者写些什么来修复此语法错误并使其在SQL server中工作?我认为您的问题在于case expression和ROLLUP,应该是这样的:
SELECT (CASE when GROUPING(HireDate) = 0 then CONVERT(varchar(50),HireDate) else 'TOTAL' end) HireDate,
count(HireDate) as count_hire_date
FROM Faculty
GROUP BY HireDate WITH ROLLUP
请参考此链接:,它仍然会给我一个语法错误。我是否使用SQL Server在case语句中保留结尾?当从字符串转换日期和/或时间时,我仍然得到
转换失败。
错误:(请尝试此操作:选择(分组时的大小写(HireDate)=0,然后转换(varchar(50),HireDate)或其他“总计”结束)HireDate,计数(HireDate)作为教员组中的count_HireDate_日期,并进行汇总