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 < GetDate()) إلى الحقول المحددة والنظام من خلال هذا المجال
select ... , add (ClosingDate < GetDate()) as Foo
from ...
where ...
order by foo
ربما إضافة (ClosingDate < GetDate()) لن يتم قبول, ثم سيكون لديك لاستخدام إذا(add (ClosingDate < GetDate());1;0)
أنا لا أعرف جملة من أنه إذا كان من خلال وظيفة القلب ، والبحث عنه!