4

ステータス列が特定の値であるすべてのアイテムが最初に表示され、次に日付順に表示されるように結果を並べ替える必要があります。

私はこれを試しました:

SELECT Id, Status, CreatedAt FROM Table
ORDER BY (Status=1) DESC, CreatedAt

(Status = 1)でbool値を取得すると考えたので、DESCで順序付けて、真の(1)値を一番上に配置します。

しかし、構文エラーが発生します。これは可能ですか?もしそうなら、正しい構文は何ですか?

ありがとう!

4

2 に答える 2

13

CASEでも使用できますORDER BY

SELECT Id, Status, CreatedAt 
FROM Table
ORDER BY 
   CASE WHEN Status = 1 THEN 0 ELSE 1 END ASC, 
   CreatedAt ASC
于 2013-03-26T13:55:04.150 に答える
5

これを試して

SELECT Id, Status, CreatedAt FROM Table
ORDER BY (case when Status=1 then 1 else 2 end), CreatedAt
于 2013-03-26T13:54:27.483 に答える