sql行列轉(zhuǎn)換最簡(jiǎn)單的方法 sql怎樣將行的值變?yōu)榱校?/h1>
sql怎樣將行的值變?yōu)榱校磕氵@是Oracle數(shù)據(jù)庫(kù),給你看看我寫(xiě)的:列轉(zhuǎn)行錄入經(jīng)營(yíng)范圍時(shí)候會(huì)遇到列傳行的問(wèn)題解決方案如下:在temp1 表有一下字段內(nèi)容:一條sql轉(zhuǎn)化列傳行效果select a,z
sql怎樣將行的值變?yōu)榱校?/h2>
你這是Oracle數(shù)據(jù)庫(kù),給你看看我寫(xiě)的:
列轉(zhuǎn)行
錄入經(jīng)營(yíng)范圍時(shí)候會(huì)遇到列傳行的問(wèn)題解決方案如下:
在temp1 表有一下字段內(nèi)容:
一條sql轉(zhuǎn)化列傳行效果
select a,zj,zjname from temp1 unpivot(zjname for zj in(b,c,d,e,f,g,h,i,j))
行轉(zhuǎn)列:
select * from tbname
行轉(zhuǎn)列之后的數(shù)據(jù):
select pud, listagg(ud, ",") within group(order by null) as ud
from tbname
group by pud
Oracle逗號(hào)分隔列轉(zhuǎn)行實(shí)現(xiàn)方法?
在做系統(tǒng)時(shí),經(jīng)常會(huì)遇到在一個(gè)字段中,用逗號(hào)或其他符號(hào)分隔存儲(chǔ)多個(gè)信息,例如保存某個(gè)用戶的一對(duì)多權(quán)限時(shí),在權(quán)限組這個(gè)字段中,就會(huì)逗號(hào)分隔保存多個(gè)權(quán)限編號(hào)。
那么,現(xiàn)在如果給出一個(gè)權(quán)限編號(hào),要去檢索出用后這個(gè)權(quán)限的用戶集合,就會(huì)需要在逗號(hào)分隔的多個(gè)權(quán)限編號(hào)中去匹配給出的這個(gè)權(quán)限編號(hào)。如果使用like去做,一則效率不高,二則匹配不精確。因此用到了逗號(hào)分隔列轉(zhuǎn)行的方法。目前該方法只適合在oracle數(shù)據(jù)庫(kù)中使用。該方法只需要sql語(yǔ)句就可以實(shí)現(xiàn)列轉(zhuǎn)行。