none
SQL2005动态结果集横向连接 RRS feed

  • 问题

  • 有两个SQL语句

    select 1 a,2 b

    select 1 a,3 c 如下图:

    如何用 inner join 合并成以下的结果

    如下图:

    好像这样不行:

    select * from (
    select * from (select 1 a,2 b) as a
    inner join
    select * from (select 1 a,3 c) as b
    ) on a.a = b.a

    麻烦了。


    wangcheng

    2012年9月8日 7:27

答案

  • select a.a,a.b,b.c 
    from 
    (select 1 a,2 b) as a
    inner join 
    (select 1 a,3 c) as b
     on a.a = b.a


    family as water

    • 已标记为答案 wangcheng 2012年9月10日 0:59
    2012年9月8日 13:16
  • 我写的不是很漂亮,你看行不

    USE tempdb
    
    IF  OBJECT_ID(N'#tb1')  IS NOT NULL
    DROP TABLE #tb1
    GO
    IF  OBJECT_ID(N'#tb2')  IS NOT NULL
    DROP TABLE #tb2
    GO
    
    CREATE TABLE #tb1(a INT ,b INT)
    CREATE TABLE #tb2(a INT ,c INT)
    GO
    
    INSERT #tb1( a, b ) SELECT 1,2 ;
    INSERT #tb2( a, c ) SELECT 1,3;
    GO
    
    SELECT * FROM #tb1
    SELECT * FROM #tb2
    
    SELECT t1.a ,t1.b,t2.c FROM #tb1 AS t1 INNER JOIN #tb2 AS t2 ON t1.a = t2.a
    


    给我写信: QQ我:点击这里给我发消息

    • 已标记为答案 wangcheng 2012年9月10日 0:59
    2012年9月9日 2:05
  • select *
    from 
    (select 1 a,2 b) as a
    CROSS APPLY
    (select 3 c WHERE a.a=a) as b

    给我写信: QQ我:点击这里给我发消息

    • 已标记为答案 wangcheng 2012年9月10日 0:59
    2012年9月9日 2:20

全部回复

  • select a.a,a.b,b.c 
    from 
    (select 1 a,2 b) as a
    inner join 
    (select 1 a,3 c) as b
     on a.a = b.a


    family as water

    • 已标记为答案 wangcheng 2012年9月10日 0:59
    2012年9月8日 13:16
  • 我写的不是很漂亮,你看行不

    USE tempdb
    
    IF  OBJECT_ID(N'#tb1')  IS NOT NULL
    DROP TABLE #tb1
    GO
    IF  OBJECT_ID(N'#tb2')  IS NOT NULL
    DROP TABLE #tb2
    GO
    
    CREATE TABLE #tb1(a INT ,b INT)
    CREATE TABLE #tb2(a INT ,c INT)
    GO
    
    INSERT #tb1( a, b ) SELECT 1,2 ;
    INSERT #tb2( a, c ) SELECT 1,3;
    GO
    
    SELECT * FROM #tb1
    SELECT * FROM #tb2
    
    SELECT t1.a ,t1.b,t2.c FROM #tb1 AS t1 INNER JOIN #tb2 AS t2 ON t1.a = t2.a
    


    给我写信: QQ我:点击这里给我发消息

    • 已标记为答案 wangcheng 2012年9月10日 0:59
    2012年9月9日 2:05
  • select *
    from 
    (select 1 a,2 b) as a
    CROSS APPLY
    (select 3 c WHERE a.a=a) as b

    给我写信: QQ我:点击这里给我发消息

    • 已标记为答案 wangcheng 2012年9月10日 0:59
    2012年9月9日 2:20