Sono nuovo di SQL.SQL: GROUP BY colonne multiple con istruzione CASE
Mi piacerebbe utilizzare GROUP BY
con una dichiarazione CASE
, per raggruppare i risultati in un modo particolare se @myboolean
è true.
Ho visto molti esempi di come utilizzare GROUP BY
e CASE BY
con un singolo campo, o come usare GROUP BY
con più campi, senza una dichiarazione CASE
.
Non so come combinare i due. Quando Allego i campi GROUP BY
all'interno dell'istruzione CASE
, ottengo un errore di sintassi:
Incorrect syntax near ','
Quindi, questo funziona:
GROUP BY
/* This works with no enclosing CASE statement */
field1,
field2,
field3,
field4
Questo produce un errore di sintassi:
GROUP BY
CASE WHEN (@myboolean=1)
THEN
field1, <-- ERROR HERE: Incorrect syntax near ','
field2,
field3,
field4
ELSE
field1
END
I ho già visto queste domande:
SQL: Group By with Case Statement for multiple fields: sembra essere un
GROUP BY
uno/o basato suCASE
, piuttosto che un gruppo per più. Nessun virgola coinvolto comunque.Group by Multiple columns and case statement: forse sono di spessore, ma non riesco a vedere come questo include un'istruzione case nella clausola
GROUP BY
vari altri, meno importanti
sto usando Microsoft SQL Server Management Studio.
Si noti che sto ereditando un'istruzione SQL molto complessa/lunga, che voglio evitare di alterare troppo. Non voglio dividere la query in due istruzioni separate SELECT
.
un caso può restituire solo una colonna/valore, non diversi. – jarlh
@jarlh grazie. Cosa dovrei fare invece? –
il CASE non funziona come ci si aspetta – mxix