下面是一个有趣的一个...希望我能解释得很好...

我有比赛在一个表中的集合在我的SQL Server数据库。我做了他们一个全文检索,工作正常。然而,有些比赛是封闭的,我想这些封闭谱曲到开放谱曲后显示出来,同时还尊重我们的全文搜索获得的排名。

所以,如果我有一个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

select ... , add (ClosingDate < GetDate()) as Foo
from ...
where ...
order by foo

可能添加(ClosingDate 如果(添加(ClosingDate

我不知道的心脏,如果函数的语法,关注一下吧!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top