Oracle PIVOT 行转列方法

 时间:2026-02-14 21:24:32

1、数据库中業種的存储如下图:

SELECT * FROM M_TORIHIKISAKI_GYOSYU

Oracle PIVOT 行转列方法

2、其中GYIUSYU_CD字段代表不同的業種

而画面需要实现下图所示样式:(将每条数据的業種横向展开显示)

Oracle PIVOT 行转列方法

3、这种情况下便可以使用PIVOT方法,代码如下:

SELECT C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12FROM M_TORIHIKISAKI_GYOSYUPIVOT(MAX(GYIUSYU_CD)FOR GYIUSYU_CD IN(1 AS C1,2 AS C2,3 AS C3,4 AS C4,5 AS C5,6 AS C6,7 AS C7,8 AS C8,9 AS C9,10 AS C10,11 AS C11,12 AS C12))

其执行结果为:

Oracle PIVOT 行转列方法

4、为实现页面效果,可使用decode方法,SQL片段如下

  DECODE(C1,1 ,'true','false') AS C1 ,DECODE(C2,2 ,'true','false') AS C2 ,DECODE(C3,3 ,'true','false') AS C3 ,DECODE(C4,4 ,'true','false') AS C4 ,DECODE(C6,6 ,'true','false') AS C6 ,DECODE(C7,7 ,'true','false') AS C7 ,DECODE(C8,8 ,'true','false') AS C8 ,DECODE(C9,9 ,'true','false') AS C9 ,DECODE(C10,10 ,'true','false') AS C10,DECODE(C11,11 ,'true','false') AS C11 ,DECODE(C12,12 ,'true','false') AS C12

这样,检索后的结果就是true 或 false ,然后将检索结果赋给checkbox,就能按要求显示了。

  • 你一定要被虐的这么难堪才肯放手吗?
  • 环球time手机端怎样查看历史消息推送
  • 教你自我化妆的三步骤每个做个时尚女生
  • 冬瓜薏米肉片汤
  • 如何通过工行手机银行缴纳商铺费
  • 热门搜索
    干铁皮石斛怎么吃 宁夏理工学院怎么样 电脑怎么改wifi密码 微信支付怎么用 无痕浏览怎么设置 牙齿遇冷热痛怎么办 晚上睡觉磨牙是怎么回事 钓鱼怎么调漂 肚脐眼流水有臭味怎么回事 撇折怎么写