怎样将两条sql语句(sql1,sql2)查询的结果,(前提是查询的字段相同)合并到一起.

并且sql1结果在sql2结果前面其结果也不变,请赐教
我也用union的确能合并到一块.但怎样能保证顺序不变了,并且sql1结果在sql2结果前面其结果也不变
我这两个sql语句都是经过排序得的,合并以后无需在排序.就是在排序,合并的字段里没有我要排序的字段

1.记录顺序在没有排序或索引的情况下,没有任何保障,所以,您最好保留排序字段。
所以,建议您,使用排序字段或索引以保证固定的查询顺序。

2.给你一个查询,不动单个查询内的顺序,只给SQL1的结果集与SQL结果集的顺序:(通过辅助排序字段)

SELECT *,0 AS SN FROM TABLENAME--sql1
UNION ALL
SELECT *,1 AS SN FROM TABLENAME--sql2
ORDER BY SN

如果不想多出一个SN,可以这样:
select field1,field2,field3 from
(
SELECT *,0 AS SN FROM TABLENAME
UNION ALL
SELECT *,1 AS SN FROM TABLENAME
)
ORDER BY SN
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-28
很简单啦,用union就行了,写法大致如下:
sql1
union
sql2

要保持顺序不变,那么就构造一个排序的ID列啊,比如orderid,在查询是硬性插入值,用于排序:

参考例子:
create table #t(a int,b int,c int,d int)
insert #t
select 1, 2, 3, 4 union all
select 5, 6, 7, 8

select a,b,c,0 as d , 1 as orderid from #t
union
select a,b,0 as c,d , 2 as orderid from #t
order by orderid

这样就可以保证查询1在查询2之前啦。
明白了吗,楼主。
第2个回答  2008-11-28
使用UNION ALL就不会排序了,但是UNION ALL也不会去掉重复行
select t.A, t.B , t.C from t1 t
UNION ALL
select t.A, t.B , t.C from t2 t;
第3个回答  2020-02-14
table
a(k-v):1-a,2-b,3-c
table
b(k-v):1-a,2-b,3-c
--------------------------
select
*
from
table
a
left
join
table
b
on
a.k
=
b.k
-------------------------
result:1-a-1-a,2-b-2-b,...
第4个回答  2008-11-28
支持二楼得
楼主要是还不明白,联系吧
第5个回答  2008-11-28
用连接查询inner Join

怎样将两条sql语句(sql1,sql2)查询的结果,(前提是查询的字段相同)合 ...
1.记录顺序在没有排序或索引的情况下,没有任何保障,所以,您最好保留排序字段。所以,建议您,使用排序字段或索引以保证固定的查询顺序。2.给你一个查询,不动单个查询内的顺序,只给SQL1的结果集与SQL结果集的顺序:(通过辅助排序字段)SELECT *,0 AS SN FROM TABLENAME--sql1 UNION ALL SELEC...

oracle怎样将两条sql语句(sql1,sql2)查询的结果,(sql1和sql2结果里有...
有一个相同的字段 就可以这样写,select * from (sql1)t1,(sql2) t2 where t1.xx = t2.xx

sql查询中怎么将两条内容相同的记录显示成一条
sql查询中两条内容相同的记录显示成一条可以用group by语句或distinct语句来实现。如,test表中有如下数据:group by的方法:select id,name from test group by id,name;查询结果:distinct的方法:select distinct id,name from test;查询结果:...

sql怎么把两张表合并成一张
1. 确定合并方式:根据需求选择左连接(LEFT JOIN)、右连接(RIGHT JOIN)或者全连接(FULL JOIN)。2. 编写合并查询:使用JOIN条件连接两张表,例如:- 使用左连接:`SELECT * FROM A LEFT JOIN B ON A.id = B.id`- 使用右连接:`SELECT * FROM B RIGHT JOIN A ON A.id = B.id`- ...

sql 将两条sql语句的查询结果合并成一条
select a.pjID,a.pjName,a.累计开支费用,b.本月累计开支费用from ( 第一个语句放这里 ) a, ( 第二个语句放这里 ) bwhere a.pjID = b.pjID

SQL 语句合并查询,两张表字段一样
如果两张表的各自查询都只有一行结果。想把两个查询的结果合并到一行。可以直接使用自然连接:select aa.,bb.from (select from a)as aa ,(select from b)as bb 其中 (select from a)和(select from b)是你的两张表的查询,结果各自只有一行。如果说,你的意思是每张表查询出来的结果都有多行...

sql:两个select语句查询出的结果如何拼接到一起
select * from(SELECT 配料日期,供货商,规格,货品名称,染料用量 FROM 染料表 UNION ALL SELECT 配料日期,供货商,规格,货品名称,助剂用量 FROM 助剂表)

sql 怎么将两个查询语句结果连接在一起
select b表.id area_id,SUM(case when status=1 then money else 0 end) count_收入,SUM(case when status=2 then money else 0 end) count_支出,area_name from a表 join b表 on a表.area=b表.id group by b表.id,area_name ...

SQL怎么将查询结果连接到一起?
(1)联立选字段select a.id,a.name name_2014,a.age.b.name name_2013 from(select id,name,age from a where time=2014) a,(select id,name from a where time=2013) b where a.id=b.id(2)利用case when和group by,这个需要测试(原因是我忘了直接写group行不行,还是要再套一...

sql查询按两个字段查询重复记录
select from shiyan003 a where exists (select 1 from (select xm, sfzhm from shiyan003 group by xm, sfzhm having count(*) > 1) s where s.xm = a.xm and s.sfzhm = a.sfzhm)

相似回答