SQL中怎么将同一个语句在不同条件下的查询结果合并

qq_29212099 2016-08-01 02:18:36
如:
select name from User where UserId ='1'
查询结果为:
name

select name from User where UserId ='2'
查询结果为
name


现在我想得到的结果为
name1 name 2
赵 钱
...全文
6557 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dp517849241 2016-08-02
  • 打赏
  • 举报
回复
union all 后 使用pivot 行转列
hbqc_zh 2016-08-02
  • 打赏
  • 举报
回复
select * from A union select * from b union 把两个结构相同的查询结果合并,可以重复使用把多个结构相同的查询结果合并。具体到本问题,就是a、b两张表的结构完全相同,查询出来的结果是这两张表的所有记录合并在一起。
baidu_35758285 2016-08-01
  • 打赏
  • 举报
回复
理想情况可以这样搞: SELECT * FROM ( SELECT 1 CS1) A,(SELECT 2 CS2) B
baidu_35758285 2016-08-01
  • 打赏
  • 举报
回复
使用union all 连接后再用行列转换就可以,应为理想情况下是返回一行数据当不理想的时候可能出现第一个出现出现x行第二个出现y行总的就是x+y行是个动态值。 行列转换:
DECLARE @s NVARCHAR(4000)
SELECT  @s = ISNULL(@s + ',', '') + QUOTENAME(标志)
FROM 表
---行列转换
DECLARE @SQL NVARCHAR(4000)
SELECT  @SQL='
SELECT *                                           
FROM 表(带有转换标志) PIVOT ( SUM(实际需要字段) 
for [标志] in('+@s+')
 )A'
EXEC (@SQL)
kingtiy 2016-08-01
  • 打赏
  • 举报
回复
那要是第一个查到10条数据,第二个查询只有一条数据,怎么合并? 如果只是简单的合并,可以做全连接 select * from (select 1 子查询) a full join (select 2 子查询) b on 1=1

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧