IBM db2 union查询结果不好

时间:2013-07-30 14:17:11

标签: db2 union

当我在调用IBM的SQL Server中执行此查询时,

Select * from openquery(ibm,'
                        Select COST_AMT,'Query1' as Query 
                           from table
                           where clause 
                           with ur;
')
union
Select * from openquery(ibm,'
                           Select COST_AMT,'Query2' as Query 
                           from table
                           different where clause 
                           with ur;
')

我在union查询中得到的结果与单独执行它们并将结果放在一起时得到的结果不同。我在openquery中尝试了union查询,所以我相信这是IBM的事情。结果似乎是COST_AMT的一个独特选择,按从最低到最高排序。

即:

1,Query1
2,Query1
3,Query1
1,Query2
2,Query2
3,Query2

但数据实际上是这样的:

1,Query1
1,Query1
1,Query1
2,Query1
2,Query1
3,Query1
1,Query2
1,Query2
1,Query2
2,Query2
2,Query2
3,Query1

我错过了关于ibm union查询的内容吗?我意识到我可以总结并得到答案,(这是我打算不做的)但我想知道更多关于为什么这种情况正在发生。

1 个答案:

答案 0 :(得分:1)

这与“ibm”或“db2”无关 - SQL UNION运算符会删除重复项。要保留重复项,请使用UNION ALL。