如何解决按列别名分组
对于立即出现的分组问题,您需要使用相同的表达式对新列进行分组或对新列进行计算,或者从派生表中使用它。
SELECT MonthYear
FROM ( SELECT Columns,
CASE
WHEN Date IS NULL
THEN 'EMPTY'
ELSE
CASE
WHEN Date = '1/1/1753'
THEN 'UNAVAILABLE'
ELSE CAST(MONTH(Date) as varchar(2))+
'/'+ CAST(YEAR(Date) as varchar(4))
END
END AS MonthYear
FROM tbltablename) T
GROUP BY MonthYear
另一方面,VARCHAR(MAX)
如果不需要,则不应使用。
解决方法
我想按列别名对sql语句进行分组。实质上,我希望以下内容在逻辑上能够正常运行,但不允许按使用as创建的列进行分组。(无效的列名)。有人提示吗?
SELECT
CASE
WHEN Date IS NULL
THEN 'EMPTY'
ELSE
CASE
WHEN Date = '1/1/1753'
THEN 'UNAVAILABLE'
ELSE CAST(MONTH(Date) as varchar(MAX))+
'/'+ CAST(YEAR(Date) as varchar(MAX))
END
END AS MonthYear
FROM tbltablename
GROUP BY MonthYear
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。