T参数的主要和次要顺序的SQL case语句

Cyb*_*awk 5 t-sql case sql-order-by

我的SQL语句有问题:当我使用order by时,我使用SELECT语句然后使用CASE.

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
Run Code Online (Sandbox Code Playgroud)

isAuthorized是一个BIT值,所以我想在那里使用二级订单.

我尝试过类似的东西:

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       
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我使用的是SQL Server 2008.

任何帮助将不胜感激.

And*_*eev 7

如果你想订购的结果通过第一次设置name,然后通过与isAuthorized@sort = ND使用此查询:

SELECT .....
ORDER BY
CASE WHEN @sort = 'ND' THEN name END DESC,
CASE WHEN @sort = 'ND' THEN isAuthorized END
Run Code Online (Sandbox Code Playgroud)

你可以结合使用CASE条款.我希望你有这个主意.