-1

数据 :

--Table 1 :
Id ZoneName
----------- --------
20011       Name1
10027       Name1
20011       Name1
20011       Name1
20011       Name1
20074       Name1
20011       Name2
20011       Name2
10059       Name3
20011       Name2

询问 :

 Select Top 2 [Id] From Table1 -- First Query
    WHERE ZoneName = 'Name1'
    UNION
    SELECT Top 1 [Id] from Table1 -- Second Query
    WHERE ZoneName = 'Name1'
    UNION
    SELECT Top 1 [Id] from Table1 -- Third Query
    WHERE ZoneName = 'Name1'

结果 :

Id
-----
20011    

预期结果 :

20011
10027
20074

从上面的查询中,我需要每个查询的 3 个不相互重叠的结果,在这种情况下,预期结果应该包含查询 1 的前 2 个,即 20011 和 10027,对于下一个前 1,它应该排除这 2 个结果并返回20074 用于查询 2。

注意:我在此示例中使用了单个 WHERE 条件,但是在实际查询中,每个查询都有不同的 Where 条件,并且最终可能与上面的查询具有相同/不同的结果。

4

1 回答 1

1

据我所知,如果您正在搜索查询特定区域名称的不同 ID,那么这可能会奏效

SELECT DISTINCT ID
FROM TABLE1
WHERE ZoneName="Name1"
于 2013-08-16T17:40:07.057 回答