数据如下:
AA BB CC DD EE FF GG
1 990001 3 销售商场 销售商场 SysMarket.aspx NULL1
2 990001 3 涂装工艺 涂装工艺 SysTuZhuang.aspx NULL2
3 990001 3 涂装色号 涂装色号 SysSehao.aspx NULL3
查询结果如下:WW XX YY ZZ
DD 销售商场 涂装工艺 涂装色号
EE 销售商场 涂装工艺 涂装色号
FF SysMarket.aspx SysMarket.aspx SysSehao.aspx
GG NULL1 NULL2 NULL3也就是把表横过来
网上搜到的结果都是求和或者是最大最小,
这里不是数值型的,求代码

解决方案 »

  1.   

    谁说非数值型不能用MIN/MAX的?
    /* 测试数据
    WITH table1(AA,BB,CC,DD,EE,FF,GG)AS(
        SELECT 1,990001,'3',N'销售商场',N'销售商场','SysMarket.aspx','NULL1' UNION ALL
        SELECT 2,990001,'3',N'涂装工艺',N'涂装工艺','SysTuZhuang.aspx','NULL2' UNION ALL
        SELECT 3,990001,'3',N'涂装色号',N'涂装色号','SysSehao.aspx','NULL3'
    ) */
        SELECT WW,
               [1] XX,
               [2] YY,
               [3] ZZ
          FROM (SELECT AA,
                       CONVERT(nvarchar(20),DD) DD,
                       CONVERT(nvarchar(20),EE) EE,
                       CONVERT(nvarchar(20),FF) FF,
                       CONVERT(nvarchar(20),GG) GG
                  FROM table1
               ) t
       UNPIVOT (
                VALUE
                FOR WW IN (DD,EE,FF,GG)
               ) u
         PIVOT (
                MAX(VALUE)
                FOR AA IN ([1],[2],[3])
               ) p
    WW   XX                   YY                   ZZ
    ---- -------------------- -------------------- --------------------
    DD   销售商场             涂装工艺             涂装色号
    EE   销售商场             涂装工艺             涂装色号
    FF   SysMarket.aspx       SysTuZhuang.aspx     SysSehao.aspx
    GG   NULL1                NULL2                NULL3
      

  2.   

    可是我加上 
    SELECT AA,
                       CONVERT(nvarchar(20),DD) DD,
                       CONVERT(nvarchar(20),EE) EE,
                       CONVERT(nvarchar(20),FF) FF,
                       CONVERT(nvarchar(20),GG) GG
                  FROM table1 FROM table1 where CC = 3 以后,
    全都成了null了,请帮忙条件是 where CC= 3 and BB= 990001 and GG = 'true'
      

  3.   

    加条件 CC= 3 and BB= 990001 测试没问题。
    但是你的数据中没有符合 GG = 'true' 条件的啊。