繁体   English   中英

Oracle到SQL Server(从字符串转换)

[英]Oracle to SQL Server (converting from character string)

该代码在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);  

试图得到这样的东西:

hire_date  count_hire_date
1995       10
1996       20
1997       30
TOTAL      60

我是在SQL Server中使用某种类型的强制转换,还是写什么来解决此语法错误并使它在SQL Server中正常工作?

我认为您的问题是在case表达式和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

并请参考以下链接: http : //msdn.microsoft.com/en-us/library/ms178544.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM