データベースカラムスイッチは、カラムの行を回します

データベースカラムスイッチは、カラムの行を回します

テーブルを作成します。

#建表语句
 CREATE  TABLE `TEST_TB_GRADE`(
  ` ID`のINT10NOT  NULL AUTO_INCREMENTを、
  ` USER_NAME ` VARCHAR20DEFAULTの NULL 
  `COURSE`のVARCHAR20DEFAULTの NULL 
  ` SCORE`のフロート DEFAULT  ' 0 ' PRIMARY  KEY ( `ID`)
)ENGINE = InnoDBのAUTO_INCREMENT = 1  DEFAULT CHARSET= Utfa8。
コードの表示

 

データを追加します

#データの追加
 INSERT  INTO TEST_TB_GRADE(USER_NAME、COURSE、SCORE)   の値
( "ジョー・スミス"、 "数学"、34 )、
"ジョー・スミス"、 "中国"、58 )、 "ジョー・スミス"、 "英語"を58 )、 "ジョン・ドウ"、 "数学"、45 )、 "ジョン・ドウ"、 "中国"、87 )、 "ジョン・ドウ"、 "英語"、45 )、 "王5"、「数学" 76 )、
("王5 ""中国" 34 )、
("王5 ""英語」、89);
コードの表示

 

SQLのカラムスイッチ

#列は切り替える
 SELECT  USER_NAME MAXCASEコース、' 数学' THENスコアELSE 0 END )数学を、
     MAXCASEコース、' 言語' THENスコアELSE 0 END )言語、
     MAXCASEコース、' 英語' THENスコアELSE 0 END )英語
 FROM test_tb_grade
 GROUP             BY  USER_NAME ;
コードの表示

 

カラムスイッチの変更

ライン転送コラム

結果テーブル結果へのデータ最初に変換する必要があります

結果を表#テーブルを作成する
 CREATE  TABLE `result`(
  ` USER_NAME ` VARCHAR20であるのDEFAULT  NULL 
  ` COURSE` VARCHAR20であるのDEFAULT  NULL 
  `SCORE` フロート DEFAULT  ' 0 ' 
)ENGINE = InnoDBはAUTO_INCREMENT = 1  DEFAULT CHARSET = UTF8 ; 
テーブルに転送されたデータに#クエリの結果
INSERT  INTOが生じる
 SELECT  USER_NAME MAXはCASEコース、WHEN  ' 数学'  THENスコアELSE  0  END )数学、
     MAXCASEコース、' 言語' THENスコアELSE 0 END )言語、
     MAXCASEコース、' 英語' THENスコアELSE 0 END )英語
 FROM test_tb_grade
 GROUP BY USER_NAME ;          
コードの表示

 

この後、列行を回します

#ラインスイッチ列
 SELECT  USER_NAME言語コース、MAX(言語)ASスコアからの結果GROUPの ことで USER_NAME  連合の ALL 
SELECT  USER_NAME数学コース、MAX(数学)ASスコアからの結果   GROUP  によって USER_NAME  連合の ALL 
SELECT  USER_NAME" 英語"コース、MAX(英語)ASスコアから結果   GROUP  によって USER_NAME
コードの表示

変更点は、行、列を回します

 

おすすめ

転載: www.cnblogs.com/botaoli/p/12661468.html