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

SELECT * FROM M_TORIHIKISAKI_GYOSYU

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

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

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

SELECT 
C1,
C2,
C3,
C4,
C5,
C6,
C7,
C8,
C9,
C10,
C11,
C12
FROM M_TORIHIKISAKI_GYOSYU
PIVOT(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)
)

其执行结果为:

为实现页面效果,可使用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,就能按要求显示了。

Oracle PIVOT 行转列方法的更多相关文章

  1. Oracle pivot行转列函数案例

    with temp as( select '湖北省' province,'武汉市' city,'第一' ranking from dual union all select '湖北省' provinc ...

  2. Oracle中“行转列”的实现方式

    在报表的开发当中,难免会遇到行转列的问题. 以Oracle中scott的emp为例,统计各职位的人员在各部门的人数分布情况,就可以用“行转列”: scott的emp的原始数据为: EMPNO ENAM ...

  3. SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行

    ylbtech-SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行 可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表.PIVOT 通过将表达式某一列 ...

  4. SQL Server中使用PIVOT行转列

    使用PIVOT行转列 1.建表及插入数据 USE [AdventureDB] GO /****** Object: Table [dbo].[Score] Script Date: 11/25/201 ...

  5. PIVOT行转列

    PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合. 测试数据 INSERT INTO [TestRows2Columns] ...

  6. Sqlserver中PIVOT行转列透视操作

    创建表: IF OBJECT_ID('T040_PRODUCT_SALES') IS NOT NULL DROP TABLE T040_PRODUCT_SALES create table T040_ ...

  7. 动态PIVOT行转列

    id name subject score remark1 l math 86 2 l eng 68 3 l phy 88 4 z chn 99 5 z math 92 6 z com 98 7 z ...

  8. 面试题:oracle数据库行转列的问题

    今天我一个学弟问了一个面试题: 有表A,结构如下:A: p_ID p_Num s_id1 10 011 12 022 8 013 11 013 8 03其中:p_ID为产品ID,p_Num为产品库存量 ...

  9. SqlServer PIVOT行转列

    PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合. 测试数据 INSERT INTO [TestRows2Columns] ...

随机推荐

  1. D. Powerful array

    D. Powerful array 题意 给定一个数列:a[i] (1<= i <= n) K[j]表示 在区间 [l,r]中j出现的次数.有t个查询,每个查询l,r,对区间内所有a[i] ...

  2. 快学scala

    scala 1.   scala的由来 scala是一门多范式的编程语言,一种类似java的编程语言[2] ,设计初衷是要集成面向对象编程和函数式编程的各种特性. java和c++的进化速度已经大不如 ...

  3. 黑马程序员:3分钟带你读懂C/C++学习路线

    随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者.而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移 ...

  4. Web前端性能优化全攻略

    网页制作poluoluo文章简介:Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多网站无情忽视的技术. Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多 ...

  5. python——根据电子表格的数据自动查找文件

    最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力. 经理最近又布置了一个很繁琐的任务给我:有一项很重大的项目做完了,但是要过审计(反正就是类似的审批之类的事情) ...

  6. javascript中document.form[formName][]的意思

    近来重新学习javascript发现还有很多知识点模糊,今天就javascript中的document.forms[formName][inputName]进行说明: <!DOCTYPE htm ...

  7. 前端的3D(css3版本)

    其实是依托Css3的功劳,先上一个例子 代码地址:链接: https://pan.baidu.com/s/1sldhljJ 密码: i6qh 这动画纵有万般变化,也离不开以下几个属性 transfor ...

  8. Ubuntu ADSL拨号上网

    一直在家用接ADSL的无线wifi上网,最近用了很久的NetGear无线路由器被我毁了,只好暂时用有线了.在Ubuntu Linux下也可直接使用ADSL拨号上网. 1.连接设备 这没什么可多说的,一 ...

  9. 记一次使用搬瓦工VPS的经历

    自己因为有需求上Google,以前是通过修改hosts的方法实现访问Google,但是最近不知道为什么改hosts后还是无法访问Google,于是决定搭建VPS来实现科学上网,看了一下价格,作为穷逼学 ...

  10. 如何离线安装Visual Studio 2017

    1. 官方下载在线安装文件 vs_community.exe https://www.visualstudio.com/zh-hans/thank-you-downloading-visual-stu ...