我不太了解OVER,我想澄清这是什么,我认为它。SQL - OVER和ORDERBY
如果我有一个提供排序类型,记录状态,以及会议日期:
我想通过MeetingDate默认排序。 我想按排序类型为2时的状态排序,,然后按会议日期排序。
下面的代码是否做到这一点?我的测试表明它确实如此,但我可能错过了一些东西。
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
CASE @SortType WHEN 2 THEN Foo.FK_Status END ASC,
Foo.MeetingDate DESC
) AS RowOrder
更具体地说,如果@SortType为1所做的就是适当相信代码分解为:
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
ASC,
Foo.MeetingDate DESC
) AS RowOrder
我想这可能会打破只是:
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
Foo.MeetingDate DESC
) AS RowOrder
与(当@SortType为2时相反):
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
Foo.FK_Status ASC,
Foo.MeetingDate DESC
) AS RowOrder