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.
任何帮助将不胜感激.
如果你想订购的结果通过第一次设置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条款.我希望你有这个主意.