Jestem nowy w SQL.SQL: GROUP BY multiple columns with CASE statement
Chciałbym użyć GROUP BY
z instrukcją CASE
, aby zgrupować wyniki w określony sposób, jeśli @myboolean
jest prawdziwe.
Widziałem wiele przykładów, jak używać GROUP BY
i CASE BY
z jednego pola, czyli jak korzystać z wielu pól GROUP BY
bez CASE
oświadczeniu.
Nie wiem jak połączyć te dwa elementy. Kiedy ująć pola GROUP BY
ramach rachunku CASE
, pojawia się błąd składni:
Incorrect syntax near ','
Tak, to działa:
GROUP BY
/* This works with no enclosing CASE statement */
field1,
field2,
field3,
field4
To daje błąd składni:
GROUP BY
CASE WHEN (@myboolean=1)
THEN
field1, <-- ERROR HERE: Incorrect syntax near ','
field2,
field3,
field4
ELSE
field1
END
I już przejrzałem następujące pytania:
SQL: Group By with Case Statement for multiple fields: Wydaje się być
GROUP BY
albo na podstawieCASE
, zamiast grupy przez wiele. W każdym razie nie było żadnych przecinków.Group by Multiple columns and case statement: może jestem gruby, ale nie widzę w jaki sposób ten zawiera oświadczenie przypadek w klauzuli
GROUP BY
różnych innych, mniej istotnych
używam Microsoft SQL Server Management Studio.
Proszę zauważyć, że dziedziczę bardzo skomplikowane/długie instrukcje SQL, których chcę uniknąć za dużo. Nie chcę podzielić zapytania na dwie oddzielne instrukcje: SELECT
.
sprawę można zwrócić tylko jedna kolumna/wartość, a nie kilka. – jarlh
@jarlh dzięki. Co powinienem robić zamiast tego? –
CASE nie działa tak jak oczekujesz – mxix