如:
  select  name from User where UserId ='1'
  查询结果为:
    name
       赵
  select name from User where UserId ='2'
   查询结果为
      name
        钱现在我想得到的结果为
    name1      name 2
      赵               钱

解决方案 »

  1.   

    那要是第一个查到10条数据,第二个查询只有一条数据,怎么合并?
    如果只是简单的合并,可以做全连接select * from (select 1 子查询) a full join (select 2 子查询) b on 1=1
      

  2.   

    使用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)
      

  3.   

    理想情况可以这样搞:
    SELECT * FROM (
    SELECT 1 CS1) A,(SELECT 2 CS2) B 
      

  4.   

    select * from Aunionselect * from b
    union 把两个结构相同的查询结果合并,可以重复使用把多个结构相同的查询结果合并。具体到本问题,就是a、b两张表的结构完全相同,查询出来的结果是这两张表的所有记录合并在一起。
      

  5.   

    union all 后  使用pivot 行转列