set @i =0;
荔波網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),荔波網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為荔波千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的荔波做網(wǎng)站的公司定做!
create table 新表
AS
select @i:=@i+1 as NO,NO1,NO2,NO3,MYA1 as MM
from(
select NO1,NO2,'MYA1 ' as NO3,MYA1 from 表
union all
select NO1,NO2,'MYA2 ',MYA2 from 表
union all
select NO1,NO2,'MYA3 ',MYA3 from 表
union all
select NO1,NO2,'MYA4 ',MYA4 from 表
union all
select NO1,NO2,'MYA5 ',MYA5 from 表
union all
select NO1,NO2,'MYA6 ',MYA6 from 表
)a order by NO1,NO2;
select * from 新表;
就是一個動態(tài)的行列轉(zhuǎn)換
CREATE TABLE `c_wssb_zz` (
`aa011` varchar(10) default NULL,
`aa001` varchar(20) default NULL,
`aa014` varchar(20) default NULL,
`aa015` varchar(200) default NULL,
`aab001` varchar(20) default NULL,
`aa010` varchar(30) default NULL,
`aae216` date default NULL,
`aa013` varchar(3) default NULL,
`aa016` varchar(10) default NULL,
`aae218` date default NULL,
`aab034` varchar(20) default NULL,
`aab901` varchar(255) default NULL
)
加入這是要轉(zhuǎn)換的表,表名不確定,作為一個參數(shù), aab001、AA011這兩個也不確定,也是參數(shù),顯示的結(jié)果把AA014這一列的內(nèi)容橫過來內(nèi)容,對應(yīng)AA015, 最后形成的數(shù)據(jù)格式如下
AAB034,AA011,AA001,AAB001,max(case when aa014='col1' then aa015 else '' end)as col1,max(case when aa014='col2' then aa015 else '' end)as col2,....max(case when aa014='colN' then aa015 else '' end)as colN,AAE216,AAE218,AA013,AA016
Mysql 行列轉(zhuǎn)置可以
select name,
sum(if(subject='語文',grade,0) as 語文, sum(if(subject='數(shù)學(xué)',grade,0) as 數(shù)學(xué),
sum(if(subject='英語',grade,0) as 英語
from scores
1. 利用SUM(IF()) 生成列 + WITH ROLLUP 生成匯總行,并利用 IFNULL將匯總行標題顯示...
2. 利用SUM(IF()) 生成列 + UNION 生成匯總行,并利用 IFNULL將匯總行標題顯示為 Tot...
3. 利用SUM(IF()) 生成列,直接生成結(jié)果不再利用子查詢 ...
4. 動態(tài),適用于列不確定情況