實現(xiàn)查詢效果
原數(shù)據(jù)
FZ | PROJECT | VALUE |
---|---|---|
1 | 電腦 | $1600 |
1 | 手機(jī) | $12 |
1 | 導(dǎo)管 | $1 |
2 | 電腦 | $2 |
2 | 手機(jī) | $22 |
方式一:MAX()
數(shù)據(jù)效果
FZ | 電腦 | 手機(jī) | 導(dǎo)管 |
---|---|---|---|
1 | $1600 | $12 | $1 |
2 | $2 | $22 |
SQL
根據(jù)FZ字段篩選并分組,MAX支持字符內(nèi)容,SUN()同樣支持,但是只能是數(shù)字類型。
SELECT FZ,
MAX(CASE WHEN PROJECT = '電腦' THEN VALUE END) 電腦,
MAX(CASE WHEN PROJECT = '手機(jī)' THEN VALUE END) 手機(jī),
MAX(CASE WHEN PROJECT = '導(dǎo)管' THEN VALUE END) 導(dǎo)管
FROM TABLE01
GROUP BY FZ
此方法沒有數(shù)據(jù)庫類型限制,MySQL、Oracle、達(dá)夢均可。
方式二:LISTAGG()
數(shù)據(jù)效果
FZ | PROJECT |
---|---|
1 | 電腦,手機(jī),導(dǎo)管 |
此方法僅僅是合并列內(nèi)容,便于整合。文章來源:http://www.zghlxwxcb.cn/news/detail-630606.html
SELECT FZ,LISTAGG(PROJECT,',') PROJECT
FROM TABLE01
WHERE FZ = 1;
方式三:WM_CONCAT()
數(shù)據(jù)效果
FZ | PROJECT |
---|---|
1 | 電腦,手機(jī),導(dǎo)管 |
2 | 電腦,手機(jī) |
此方法與方法二相關(guān)相同,但適合于Oracle數(shù)據(jù)庫。文章來源地址http://www.zghlxwxcb.cn/news/detail-630606.html
SELECT FZ,WM_CONCAT(PROJECT,',') PROJECT
FROM TABLE01
--WHERE FZ = 1
GROUP BY FZ;
到了這里,關(guān)于Oracle多行數(shù)據(jù)合并為一行數(shù)據(jù),并將列數(shù)據(jù)轉(zhuǎn)為字段名的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!