sql:两个select语句查询出的结果如何拼接到一起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql:两个select语句查询出的结果如何拼接到一起相关的知识,希望对你有一定的参考价值。
sql:两个select语句查询出的结果如何拼接到一起,并按照一定的条件进行拼接
两个select语句查询的结果如下:
结果一:
HB0008S 湖北广药安康医药有限公司 1 1 1 1 2009-06-21 00:00:00.000
GD0001 广州医药有限公司 1 1 1 1 2009-06-21 00:00:00.000
GDB139S 广东九州通医药有限公司 1 1 1 1 2009-06-21 00:00:00.000
结果二:
HB0008S 湖北广药安康医药有限公司 1 1 1 2009-06-22 00:00:00.000
GD0001 广州医药有限公司 1 1 1 2009-06-22 00:00:00.000
HN0991S 国药控股河南股份有限公司 1 1 1 2009-06-22 00:00:00.000
BJ0004 北京爱心伟业有限公司 1 1 1 2009-06-22 00:00:00.000
GS0019S 甘肃百安医药科技有限公司 1 1 1 2009-06-22 00:00:00.000
现在想要将两个结果中,相同公司编号的内容拼接在一起。
请问各位前辈怎么写SQL语句呢?两个表我知道怎么去连接,可变成了两个查询结果我就不知道怎么去处理了。先谢谢各位。
union [all] all会显示两个表所有记录不会去重
select2
结果集的字段名会以第一个表字段为准,, 参考技术C 使用 union 就可以连接两个表了,注意连接条件就行 参考技术D 从数据来看数据表结构相同所以
Seelct * from
Select * from A
union
Select * from B
) AA order by AA.公司编号本回答被提问者采纳 第5个回答 2009-07-06 两个结果 union
结果1
union
结果2
如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?
如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36)
与这个问题具有相同性质的其他描述还包括:
如何在SQL Server存储过程中获取另一存储过程的执行结果记录集?
如何在存储过程中检索动态SQL语句的执行结果?
如何实现类似SELECT * FROM (EXEC procedure_name @parameters_var) AS datasource ... 的功能?procedure_name是一个存储过程的名字,@parameters_var是过程参数列表
如何将一个存储过程的执行结果记录集传递给另一个存储过程?
存储过程中如何根据另一个存储过程的执行结果选择执行流程?
存储过程中如何根据动态SQL语句的查询结果更改执行流程?
一个存储过程A使用另一个存储过程B的名字(或一段SQL语句或一个不确定的表名,字段名)作为参数,如何在不改动存储过程B的情况下,对存储过程B的执行结果记录集进行过滤/更改,再将过滤/更改后的结果集返回给存储过程A的调用者?
这个问题我以前的解决方法是使用OPENQUERY()或OPENDATASOURCE(),但OPENQUERY()不仅要求建立一个链接服务器,而且执行性能也让人无法满意。OPENDATASOURCE()则要求提供连接字符串,这对系统后期的维护也是一个很大的麻烦。
今天使用SQL Server联机丛书时无意中发现了一条SQL语句,竟然非常方便的解决了这个问题。这个语句就是INSERT语句。
INSERT语句在帮助中的定义是这样的:
{ table_name WITH ( < table_hint_limited > [ ...n ] )
| view_name
| rowset_function_limited
}
{ VALUES
( { DEFAULT | NULL | expression } [ ,...n] )
| derived_table
| execute_statement
}
}
| DEFAULT VALUES
最后给出两种最常见的处理流程:
1。创建一个临时表#tmp,表结构与目标存储过程procedure_name的返回结果集兼容(兼容即可,不必相同)。
CREATE TABLE #tmp(
[columns_list]
)
2。执行存储过程并将存储过程的返回结果集插入临时表。
INSERT INTO #tmp EXEC procedure_name @parameters_var
3。现在可以使用(过滤,更改或检索)#tmp了。^_^
IF EXISTS(SELECT * FROM #tmp)
BEGIN
--执行分支1
END ELSE BEGIN
--执行分支2
END
4。别忘了最后清除临时表。
DROP TABLE #tmp
INSERT INTO #tmp EXEC dbo.sp_executesql @querystring_value
即可。
以上是关于sql:两个select语句查询出的结果如何拼接到一起的主要内容,如果未能解决你的问题,请参考以下文章