случай в группе по процедуре магазина - PullRequest
0 голосов
/ 15 марта 2010

возможно ли дело в группе? похож на это:

select * from table

    GROUP BY 
      CASE WHEN @Attivita=0 THEN (RANK() OVER (GROUP BY Nome,AccountID,Matricola DESC))   

     END

спасибо

Ответы [ 2 ]

1 голос
/ 15 марта 2010

Вы должны сгруппировать по всем выбранным (не агрегированным) столбцам ..

так что если вы select *, вам нужно будет сгруппировать их по всем ...

Если вместо group by вы имеете в виду order by, тогда да, вы можете ..

0 голосов
/ 15 марта 2010

Нет: это не имеет смысла.

Вы не можете

  • используйте GROUP BY и SELECT *
  • использовать RANK в подпункте
  • используйте GROUP BY в предложении OVER
  • GROUP BY над функцией ранжирования не имеет смысла

Что вы пытаетесь сделать, с вводом / выводом и схемой, пожалуйста.

Редактировать, основываясь на ответе Габи

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
...