a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

從Oracle 表格行列轉(zhuǎn)置說起第1/2頁

2024-08-29 13:56:19
字體:
供稿:網(wǎng)友

NOMONEYDAY

1231

1432

1-453

2421

2-102

2503

31008

為了符合閱讀習慣,最終報表希望是如下格式:

NOMONTUETHR

12343-45

242-1050

3

------------------------

咱們一步步來實現(xiàn):

1.運用DECODE轉(zhuǎn)換行為列

SQL:

SELECT NO,
DECODE(DAY,1,MONEY,'') DAY1,
DECODE(DAY,2,MONEY,'') DAY2,
DECODE(DAY,3,MONEY,'') DAY3
FROM TEMP

結果:

NODAY1DAY2DAY3

123

143

1-45

242

2-10

250

3

2.按NO字段分組,并更改列名

SQL:

SELECT NO, MAX(DAY1) MON, MAX(DAY2) TUE, MAX(DAY3) THR
FROM (SELECT NO,
DECODE(DAY, 1, MONEY,'') DAY1,
DECODE(DAY, 2, MONEY,'') DAY2,
DECODE(DAY, 3, MONEY,'') DAY3
FROM TEMP)
GROUP BY NO;

結果:

NOMONTUETHR

12343-45

242-1050

3

------------------------

重難點歸納:

1.DECODE缺省值設置

DECODE語法如下:decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)

如果缺省值由''(兩個單引號)改為0,即SQL:

SELECT NO, MAX(DAY1) MON, MAX(DAY2) TUE, MAX(DAY3) THR
FROM (SELECT NO,
DECODE(DAY, 1, MONEY,0) DAY1,
DECODE(DAY, 2, MONEY,0) DAY2,
DECODE(DAY, 3, MONEY,0) DAY3
FROM TEMP)
GROUP BY NO;

結果如下(所有值為負與空值都被賦為0):

NOMONTUETHR

123430

242050

3000

2.列缺省值設置(DAY值為8的顯示為'undefined')

SQL:

SELECT NO,MONEY,
DECODE(DAY,1,'MON',2,'TUE',3,'THR','undefined') DAY
FROM TEMP

結果:

NOMONEYDAY

123MON

143TUE

1-45THR

242MON

2-10TUE

250THR

3100undefined

3.行列轉(zhuǎn)化在表單內(nèi)數(shù)據(jù)量較大的情況下消耗較大

原因:

1.掃描目標數(shù)據(jù)時間開銷大。

2.GROUP BY時,數(shù)據(jù)冗余帶來的多行合并。

優(yōu)點:

表結構穩(wěn)定:DAY增加新值只需增加記錄,無需新增新列!

下一頁 decode()函數(shù)使用技巧
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲一区二区三区在线播放 | 欧美视频在线观看一区 | 国产成人精品一区二区视频免费 | 精品国产高清一区二区三区 | 成人亚洲免费视频 | a视频在线观看 | 免费人成在线观看网站 | 品久久久久久久久久96高清 | 国产高清一级 | 久久精品国产一区二区电影 | 国产成人亚洲综合 | 羞羞视频免费观看入口 | 成人黄页在线观看 | 国产91精选 | 日日干夜夜干 | 国产欧美一区二区 | 在线视频日本 | 亚洲一区中文字幕 | 中文字幕在线永久 | 精品亚洲一区二区三区在线观看 | 一本一本久久a久久精品牛牛影视 | 一本色道精品久久一区二区三区 | 天堂视频中文字幕 | 不卡视频一区二区 | 亚洲在线视频 | 久久久女女女女999久久 | 亚洲一区二区中文字幕在线观看 | 亚洲三级网站 | 和尚风流一级艳片 | 97人人爽 | 国产一区二区精品在线 | 久久精品一区二区国产 | 亚洲免费在线观看 | 精品一二区 | 国产毛片在线 | 国产高清精品一区二区三区 | 盗摄精品av一区二区三区 | 欧美一区二区大片 | 免费毛片视频 | 综合久久综合久久 | 99热在线播放 |