当前位置: 代码迷 >> Sql Server >> SQL SERVER 2005 ORDER BY和UNION的有关问题
  详细解决方案

SQL SERVER 2005 ORDER BY和UNION的有关问题

热度:56   发布时间:2016-04-27 10:47:58.0
SQL SERVER 2005 ORDER BY和UNION的问题
有两个TABLE
TABLE_A (A列,日期A)
TABLE_B (B列,日期B)

我从两个TABLE各取出一条最新的数据

SELECT TOP 1 * FROM TABLE_A WHERE ORDER BY 日期A;
SELECT TOP 1 * FROM TABLE_B WHERE ORDER BY 日期B;

我想把两条数据用一个结果表示出来
SELECT TOP 1 * FROM TABLE_A WHERE ORDER BY 日期A
UNION
SELECT TOP 1 * FROM TABLE_B WHERE ORDER BY 日期B;

但是出现了错误,我想问题一下要怎样才能解决。

注:下面的这种方法不能用。
SELECT * FROM (SELECT TOP 1 * FROM TABLE_A WHERE ORDER BY 日期A) AS TR1
UNION
SELECT * FROM (SELECT TOP 1 * FROM TABLE_B WHERE ORDER BY 日期B) AS TR2;
请高手指点,谢谢了

------解决方案--------------------
要加上 all吧 

SQL code
SELECT * FROM (SELECT TOP 1 * FROM TABLE_A WHERE ORDER BY 日期A) AS TR1 UNION allSELECT * FROM (SELECT TOP 1 * FROM TABLE_B WHERE ORDER BY 日期B) AS TR2;
------解决方案--------------------
注:下面的这种方法不能用。
SQL code
SELECT * FROM (SELECT TOP 1 * FROM TABLE_A WHERE ORDER BY 日期A) AS TR1UNIONSELECT * FROM (SELECT TOP 1 * FROM TABLE_B WHERE ORDER BY 日期B) AS TR2;
------解决方案--------------------
当然不能用了,ORDER BY 语句前面多了个"WHERE"
------解决方案--------------------
楼主在忽悠人?
------解决方案--------------------
SQL code
--TRYSELECT TOP 1 * into #t1 FROM TABLE_A WHERE ORDER BY 日期A; SELECT TOP 1 * into #t2 FROM TABLE_B WHERE ORDER BY 日期B;goselect * from #t1union allselect * from #t2drop table #t1drop table #t2
  相关解决方案