当我在调用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查询的内容吗?我意识到我可以总结并得到答案,(这是我打算不做的)但我想知道更多关于为什么这种情况正在发生。
答案 0 :(得分:1)
这与“ibm”或“db2”无关 - SQL UNION运算符会删除重复项。要保留重复项,请使用UNION ALL。