我的SELECT子句中有以下case语句,也是我 有一个分组...... 那么,可以指定UF.CONT_PID&我的UF.M_STATUS_CD GROUP BY条款?我需要指定整个CASE语句 在GROUP BY?
CASE WHEN UF.CONT_PID IN
('04007005', '01019045','01019046') OR
(UF.M_STATUS_CD IN ('01', '02')
THEN
1
ELSE
0
END
答案 0 :(得分:2)
而不是重复表达,你可以这样做:
SELECT col /*, other cols */ FROM
(
SELECT col = CASE WHEN /*...long-winded expression...*/
THEN 1 ELSE 0 END /*, other cols */
FROM dbo.table
) AS x
GROUP BY col;
答案 1 :(得分:0)
我相信你可以通过两种方式分组:
GROUP BY UF.CONT_PID, UF.M_STATUS_CD
OR
GROUP BY CASE WHEN UF.CONT_PID IN ('04007005', '01019045','01019046') OR (UF.M_STATUS_CD IN ('01', '02') THEN 1 ELSE 0 END
但请记住,这些是非常不同的分组。