I have a problem with my SQL statement:
I use SELECT statement and then CASE when I use order by.
SELECT .....
ORDER BY
CASE WHEN @sort = 'ND' THEN name END DESC,
CASE WHEN @sort = 'NA' THEN name END,
CASE WHEN @sort = 'AD' THEN (isAuthorized) END DESC,
CASE WHEN @sor = 'AA' THEN (isAuthorized) END
isAuthorized is a BIT value, so I would like to use secondary order by there.
I tried something like:
SELECT .....
ORDER BY
CASE WHEN @sort = 'ND' THEN name END DESC,
CASE WHEN @sort = 'NA' THEN name END,
CASE WHEN @sort = 'AD' THEN (isAuthorized, name ) END DESC,
CASE WHEN @sort = 'AA' THEN (isAuthorized, name ) END
But it doesn’t work.
I use SQL server 2008.
Any help would be greatly appreciated.
If you want order the result set first by
nameand then byisAuthorizedwhen@sort = NDuse this query:You can combine
CASEclauses. I hope you got the idea.