解决方案 »

  1.   

    如果你的列名是固定的个数就好做,给你个例子参考:SELECT CASE
             WHEN 'XIYAO' = 'XIYAO' THEN
              'XIYAO'
           END XIYAO,
           CASE
             WHEN 'ZHONGYAO' = 'ZHONGYAO' THEN
              'ZHONGYAO'
           END ZHONGYAO,
           CASE
             WHEN 'QITA' = 'QITA' THEN
              'QITA'
           END QITA
      FROM DUAL;
      

  2.   

    SELECT decode(LXMC,'检查',JE,NULL) AS '检查',....FROM 
      

  3.   


    SELECT CASE
              WHEN 'XIYAO' = 'XIYAO' THEN
               DECODE((T.JE,'NULL', 0, T.JE)
            END XIYAO,CASE
             WHEN 'ZHONGYAO' = 'ZHONGYAO' THEN
              DECODE((T.JE,'NULL', 0, T.JE)
           END ZHONGYAO,CASE
             WHEN 'QITA' = 'QITA' THEN
              DECODE((T.JE,'NULL', 0, T.JE)
           END QITA FROM TABLE T;
      

  4.   

    刚才的多了个括号
    SELECT CASE
             WHEN 'XIYAO' = 'XIYAO' THEN
              DECODE(T.JE, 'NULL', 0, T.JE)
           END XIYAO,
           CASE
             WHEN 'ZHONGYAO' = 'ZHONGYAO' THEN
              DECODE(T.JE, 'NULL', 0, T.JE)
           END ZHONGYAO,
           CASE
             WHEN 'QITA' = 'QITA' THEN
              DECODE(T.JE, 'NULL', 0, T.JE)
           END QITA
      FROM DUAL T;
      

  5.   

    刚才的多了个括号
    SELECT CASE
             WHEN 'XIYAO' = 'XIYAO' THEN
              DECODE(T.JE, 'NULL', 0, T.JE)
           END XIYAO,
           CASE
             WHEN 'ZHONGYAO' = 'ZHONGYAO' THEN
              DECODE(T.JE, 'NULL', 0, T.JE)
           END ZHONGYAO,
           CASE
             WHEN 'QITA' = 'QITA' THEN
              DECODE(T.JE, 'NULL', 0, T.JE)
           END QITA
      FROM DUAL T;这样写结果是分行显示的,能把它们合成一行显示么?
      

  6.   


    这个得出来是分行显示的,像这样  bm    西药    成药   草药   治疗    检查
    急诊科  106.48  
    急诊科           198         
    急诊科                         46
    急诊科                                480能把它们合在一行里显示么?
    加个sum(),然后再group by id
    SELECT ID,sum(decode(LXMC,'检查',JE,NULL)) AS '检查',....FROM table GROUP BY ID
      

  7.   


    这个得出来是分行显示的,像这样  bm    西药    成药   草药   治疗    检查
    急诊科  106.48  
    急诊科           198         
    急诊科                         46
    急诊科                                480能把它们合在一行里显示么?
    加个sum(),然后再group by id
    SELECT ID,sum(decode(LXMC,'检查',JE,NULL)) AS '检查',....FROM table GROUP BY ID
    非常感谢,我得出想要的结果了~
      

  8.   

    非常感谢 gioh0022 的解答,我得出了想要的结果,也非常感谢 zlloct ,辛苦了