none
怎么把这2个表合成1个表,用PIVOT函数 RRS feed

  • 问题

  • id name pass permission
    1 admin 123 0


    id permissions uid
    ----------- ------------------------------
    5 上限 1
    6 下限 1


    怎样变成
    id name pass permission permissions1 permissions2
    1 admin 123 0 上限 下限


    用PIVOT函数额.....
    2011年5月12日 3:33

答案

  • 假定,上面的表叫TableA下面的表叫TableB

    先PIVOT再JOIN的

    SELECT a.*,b.permission1,b.permission2

    FROM TableA a

    JOIN

    (SELECT UID,[5] permissions1,[6] permissions2

    FROM

    (

    SELECT * FROM TableB

    ) T

    PIVOT

    (MAX(permissions) FOR id IN ([5],[6]))B) b ON A.id = B.uid

    先JOIN再PIVOT的

    SELECT id,name,pass,permission,[5] permissions1,[6] permissions2

    FROM

    (

    SELECT a.*,b.id,b.permissions FROM TableA a join TableB b ON a.id = b.uid

    )T

    PIVOT

    (

    MAX(permissions) FOR id IN ([5],[6])

    )Final

    2011年5月12日 7:39