我有一个按1,2列排序的表。我需要从顶部和所有后续行中获取第一行,而第二列的值与第一行的值相同。SQL:按两列排序并在第二列中获得具有相同值的第一行
F.e我有数据样本:
select * from sample
order by ID desc, date desc
ID Date
--- ----
45 NULL
44 NULL
40 01/01/10
35 NULL
32 04/05/08
我需要让前两排(带有id in (45, 44)
),因为2次排有Date = NULL
。
如果我有数据样本:
ID Date
--- ----
45 NULL
44 NULL
40 NULL
35 NULL
32 04/05/08
我需要拿到第4行(与id in (45, 44, 40, 35)
)。
我无法通过查询来解决我的问题。我考虑过使用row_number()
和rank()
,但我无法适应他们对我的目的。 非常感谢您的帮助!
尝试按日期排序,ID asc/decs'。这将首先按第二栏排序,然后按第一栏排序(如果您需要第二栏排序)。 – FDavidov
为什么不在第一种情况下得到id = 35? –
其简单的戈登,因为你有不同的日期列之前35'40 01/01/10' –