请教一个问题,就是我有两个SQL语句,如下:
  1、SELECT COUNT (*) as a  FROM party_info
  2、SELECT COUNT (*) as b  FROM league_info  求一个SQL,可以把上面的两个结果合并,写到同一行中,但是分为两列。分别是a和b列。
  谢谢了~

解决方案 »

  1.   

    select * from  (SELECT COUNT (*) as a FROM party_info) a1,
    (SELECT COUNT (*) as b FROM league_info) a2 ;
      

  2.   

    列转行
    CREATE TABLE t_col_row(
    ID INT,
    c1 VARCHAR2(10),
    c2 VARCHAR2(10),
    c3 VARCHAR2(10));
    INSERT INTO t_col_row VALUES (1, 'v11', 'v21', 'v31');
    INSERT INTO t_col_row VALUES (2, 'v12', 'v22', NULL);
    INSERT INTO t_col_row VALUES (3, 'v13', NULL, 'v33');
    INSERT INTO t_col_row VALUES (4, NULL, 'v24', 'v34');
    INSERT INTO t_col_row VALUES (5, 'v15', NULL, NULL);
    INSERT INTO t_col_row VALUES (6, NULL, NULL, 'v35');
    INSERT INTO t_col_row VALUES (7, NULL, NULL, NULL);
    COMMIT;
    SELECT * FROM t_col_row;
    2.1
    UNION ALL
    适用范围:8i,9i,10g及以后版本
    SELECT id, 'c1' cn, c1 cv
    FROM t_col_row
    UNION ALL
    SELECT id, 'c2' cn, c2 cv
    FROM t_col_row
    UNION ALL
    SELECT id, 'c3' cn, c3 cv FROM t_col_row;
    若空行不需要转换,只需加一个where条件,
    WHERE COLUMN IS NOT NULL 即可。
     
      

  3.   


    select (select count(*) from emp) a,
           (select count(*) b from dept) b
    from dual
    /
             A          B
    ---------- ----------
            14          4
    select (select count(*) from party_info) a,
           (select count(*) from league) b
    from dual