2009-07-20 76 views
1

我将是第一个承认我的SQL技能缺乏的人。现在...SQL基本查询问题

假设我们有一个名为Posts的数据库表,它有三列:Id,RootId和DateTime。

我想要做的是获得最后的(通过DateTime)20个不同的RootId值。

虽然这里有一点要注意:RootId可能是NULL,在这种情况下,我们应该将该记录视为不同的,而不是NULL,而应该返回Id。

查询会是什么?

回答

2

select distinct top 20 isnull(rootid,id) from posts order by datetime desc

假设这是用于MS SQL服务器

+0

ISNULL(rootid,ID)似乎有点奇怪。为什么不是isnull(rootid,0)? – JohnFx 2009-07-20 00:18:27