SQL: GROUP BY multiple columns with CASE statement SQL: GROUP BY multiple columns with CASE statement sql sql

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