可以在一组中做一个案例吗? 类似于:
select * from table
GROUP BY
CASE WHEN @Attivita=0 THEN (RANK() OVER (GROUP BY Nome,AccountID,Matricola DESC))
END
感谢
答案 0 :(得分:1)
您必须按所有选定(非聚合)列进行分组..
所以如果你select *
,你需要按所有人分组......
如果您不是group by
而是order by
,那么您可以......
答案 1 :(得分:0)
不:这没有任何意义。
你不能
请问您要做什么,请输入/输出和架构。
编辑,基于gaby的回答
select
*
from
(
SELECT
*, RANK() OVER (GROUP BY Nome,AccountID,Matricola DESC) as bar
from
table
) foo
ORDER BY
CASE WHEN @Attivita=0 THEN bar END