SQL: GROUP BY multiple columns with CASE statement
You could use...
GROUP BY field1, CASE WHEN @myboolean=1 THEN field2 END, CASE WHEN @myboolean=1 THEN field3 END, CASE WHEN @myboolean=1 THEN field4 END
If @myboolean
is not 1
that evaluates to NULL
which doesn't affect the result.
If it's in a stored-procedure you can also use an IF
.
You can try this way:
IF (@myboolean=1)BEGINSELECTfield1,field2,field3,field4FROM myTableGROUP BYfield1,field2,field3,field4ENDELSEBEGINSELECTfield1FROM myTableGROUP BYfield1END