SQL Server:كيفية ترتيب حسب التاريخ, إذا كان التاريخ هو < GetDate()

StackOverflow https://stackoverflow.com/questions/1817933

سؤال

هنا مثيرة للاهتمام...آمل أن تفسير ذلك جيدا...

لدي مجموعة من المسابقات في جدول واحد في 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)

أنا لا أعرف جملة من أنه إذا كان من خلال وظيفة القلب ، والبحث عنه!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top