SQL Server2005支持Group by中有计算语法SELECT COUNT(1),CASE WHEN LEFT(USE_WORKNO,2)>80 THEN '19'+LEFT(USE_WORKNO,2ELSE '20'+LEFT(USE_WORKNO,2END AS A 
SQL Server2005支持Group by中有计算语法
FROM TBLSYSUSER WHERE USE_WORKNO <>'' GROUP BY LEFT(USE_WORKNO,2ORDER BY A


这条SQL语句在MS SQL Server2000中执行报错
SQL Server2005支持Group by中有计算语法服务器: 消息 8120,级别 16,状态 1,行 1
SQL Server2005支持Group by中有计算语法列 
'TBLSYSUSER.USE_WORKNO' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
SQL Server2005支持Group by中有计算语法服务器: 消息 
8120,级别 16,状态 1,行 1
SQL Server2005支持Group by中有计算语法列 
'TBLSYSUSER.USE_WORKNO' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

在MS SQL Server2005 CTP版本中执行正常

后来改为
SQL Server2005支持Group by中有计算语法SELECT COUNT(1),A FROM (SELECT CASE WHEN LEFT(USE_WORKNO,2)>80 THEN '19'+LEFT(USE_WORKNO,2ELSE '20'+LEFT(USE_WORKNO,2END AS A  FROM TBLSYSUSER WHERE USE_WORKNO <>''AS B GROUP BY A ORDER BY A
SQL Server2005支持Group by中有计算语法

都正常执行!

相关文章: