这是一个 SQL 专家的问题!
我正在使用 SQL SERVER 2008 R2 Express。
我有一个名为[myTable]
由 2 种类型的记录组成的表。
第一种记录是主记录,第二种是[Relative]
记录。
每个主记录可能有多个相关记录。
我想掌握SLELECT TOP 10 * FROM [myTable]
记录,以及每个记录的联合子记录。SELECT TOP 4
[Relative]
每条记录都有一[PKID] NO NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED
列。
我想我需要这样的东西:
SELECT TOP 10 * FROM [myTable] WHERE [Relative]=0
UNION
For each (SELECT TOP 10 [PKID] as Master, * FROM [myTable] WHERE [Relative]=0 )
{SELECT TOP 4 * FROM [myTable] WHERE [Relative] = Master}
我应该如何更正查询以实现我的目标?
我有一个次要问题,我怀疑是否有一个简单的解决方案:
如专栏所述,相对记录有两种形式[IsImportant]
。
有没有办法确保每个主记录只选择一个重要的相关记录?
如果主记录的相对记录少于 4 个,而其中只有 1 个很重要,是否有办法跳过主记录?