T SQL statement with primary and secondary orders by parameter

I have a problem with my SQL operation: I use the SELECT statement and then CASE when I use the order.

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 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 that will not work.

I am using SQL Server 2008.

Any help would be greatly appreciated.

+5
source share
1 answer

If you want to order a result set first name, and then isAuthorizedwhen to @sort = NDuse this query:

SELECT .....
ORDER BY
CASE WHEN @sort = 'ND' THEN name END DESC,
CASE WHEN @sort = 'ND' THEN isAuthorized END

You can combine offers CASE. I hope you have this idea.

+7
source

All Articles