SQL Server:日付が<の場合、日付順に並べる方法GetDate()
-
10-07-2019 - |
質問
これは興味深いものです...私がそれをうまく説明できることを願っています...
SQL Server DBの単一のテーブルに競合のコレクションがあります。私はそれらに対して全文検索を行っていますが、うまくいきます。ただし、一部のコンペティションは終了しており、全文検索で得られるランクを引き続き尊重しながら、オープンコンプの後にこれらのクローズドコンプが表示されるようにします。
したがって、IsOpenビットフィールドを持っている場合は、それらを注文します
ORDER BY IsOpen DESC, KEY_TBL.Rank DESC
問題は、IsOpenビットフィールドがないことです。代わりに、日時であるClosedDateフィールドがあります。
だから私が本当にする必要があるのは次のようなものです:
ORDER BY (ClosingDate < GetDate()) ASC, KEY_TBL.Rank DESC
誰でもこれを行う方法を知っていますか?
どんなアイデアも素晴らしいでしょう!事前に感謝します。
-Ev
解決
ORDER BY
CASE
WHEN (ClosingDate < GetDate())
THEN 1
ELSE 0
END ASC,
KEY_TBL.Rank DESC
他のヒント
選択したフィールドに(ClosingDate&lt; GetDate())を追加し、そのフィールドで並べ替えます
select ... , add (ClosingDate < GetDate()) as Foo
from ...
where ...
order by foo
追加(ClosingDate&lt; GetDate())は受け入れられないため、使用する必要があります IF(add(ClosingDate&lt; GetDate()); 1; 0)
IF関数の構文がわからないので、調べてください!
所属していません StackOverflow