for oracle中pivot_Oracle PIVOT 行转列方法
數(shù)據(jù)庫(kù)中業(yè)種的存儲(chǔ)如下圖:
SELECT * FROM M_TORIHIKISAKI_GYOSYU
其中GYIUSYU_CD字段代表不同的業(yè)種
而畫(huà)面需要實(shí)現(xiàn)下圖所示樣式:(將每條數(shù)據(jù)的業(yè)種橫向展開(kāi)顯示)
這種情況下便可以使用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)
)
其執(zhí)行結(jié)果為:
為實(shí)現(xiàn)頁(yè)面效果,可使用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
這樣,檢索后的結(jié)果就是true 或 false ,然后將檢索結(jié)果賦給checkbox,就能按要求顯示了。
總結(jié)
以上是生活随笔為你收集整理的for oracle中pivot_Oracle PIVOT 行转列方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vilatile 深入理解java虚拟机
- 下一篇: 华硕笔记本节能证书_新标准兼顾性能与续航