5

SQLステートメントに問題があります。SELECTステートメントを使用してから、orderbyを使用するときに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

isAuthorizedはBIT値なので、そこで2次注文を使用したいと思います。

私は次のようなことを試しました:

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       

しかし、それは機能しません。

SQLServer2008を使用しています。

どんな助けでも大歓迎です。

4

1 に答える 1

7

name結果セットを最初に並べ替え、次にこのクエリを使用するisAuthorizedときに並べ替える場合:@sort = ND

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

CASE句を組み合わせることができます。私はあなたがその考えを理解したことを望みます。

于 2013-02-06T11:08:47.727 に答える