日期:2014-05-17  浏览次数:21158 次

sql中将一行数据变成一列显示

如图,将上图数据显示成一行,最后的效果是

  bm        西药     成药     草药     治疗     检查     化验     放射
急诊科   106.48  198.00  0.00    46.00   480.00  15.00  140.00

第三个草药是图中je(金额)为0的一项,所以图中没显示出来,但想在最后的结果中显示 


请各位高手帮忙看看,我才接触没多久,还不怎么会写,谢谢!

------解决方案--------------------
如果你的列名是固定的个数就好做,给你个例子参考:

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;

------解决方案--------------------
引用:
Quote: 引用:

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


这个得出来是分行显示的,像这样

  bm    西药    成药   草药   治疗    检查
急诊科  106.48  
急诊科           198         
急诊科                         46
急诊科                                480

能把它们合在一行里显示么?


加个sum(),然后再group by id
SELECT ID,sum(decode(LXMC,'检查',JE,NULL)) AS '检查',....FROM table GROUP BY ID