El interruptor de la columna de base de datos, gire la columna fila

El interruptor de la columna de base de datos, gire la columna fila

Crear una tabla

#建表语句
 CREATE  TABLE `TEST_TB_GRADE` ( 
  ` ID` int ( 10 ) NOT  NULL AUTO_INCREMENT, 
  ` USER_NAME ` varchar ( 20 ) DEFAULT  NULL , 
  `COURSE` varchar ( 20 ) DEFAULT  NULL , 
  ` SCORE` flotador  DEFAULT  ' 0 ' ,
   PRIMARIA  CLAVE ( `ID`) 
) MOTOR = InnoDB AUTO_INCREMENT = 1  DEFAULT CHARSET= Utfa8;
Ver código

 

Adición de datos

# Añadir datos
 INSERTAR  EN TEST_TB_GRADE ( USER_NAME , CURSO, SCORE)   valores 
( "Joe Smith", "Matemáticas", 34 ), 
( "Joe Smith", "chino", 58 ), 
( "Joe Smith", "Inglés" 58 ), 
( "John Doe", "matemáticas", 45 ), 
( "John Doe", "chino", 87 ), 
( "John Doe", "Inglés", 45 ), 
( "Wang cinco", "matemáticas " 76 ), 
(" Wang cinco "" chino " 34 ), 
(" Wang cinco "" Inglés", 89 );
Ver código

 

interruptor de la columna de SQL

# Columna cambiar
 el SELECT  nombre_usuario ,
     MAX ( el CASO de golf, el cuándo  ' matemática '  ENTONCES Score ELSE  0  END ) matemáticas,
     MAX ( el CASO de golf, el CUANDO  ' lenguaje '  ENTONCES Puntuación ELSE  0  END ) lengua,
     MAX ( el CASO de golf, el CUANDO  ' Inglés '  ENTONCES Puntuación ELSE  0  FIN ) Inglés
 el FROM test_tb_grade
 del GRUPO POR  USER_NAME ;
Ver código

 

interruptor cambia la columna

columna de transferencia de la línea

Primera necesidad de convertir los datos en la tabla de resultados resultado

Resultados En la Tabla # Crear una tabla de
 la CREATE  TABLE `result` ( 
  ` USER_NAME ` VARCHAR ( 20 es ) el DEFAULT  NULL , 
  ` COURSE` VARCHAR ( 20 está ) el DEFAULT  NULL , 
  `SCORE` un flotador  el DEFAULT  ' 0 ' 
) MOTOR = el InnoDB AUTO_INCREMENT = . 1  el DEFAULT el CHARSET = UTF8 ; 
# query resultados a los datos transferidos a la mesa 
INSERT  en el resultado
 del SELECT  USER_NAME ,
     MAX (El CASO de golf, el cuándo  ' matemática '  ENTONCES Puntuación ELSE  0  END ) matemáticas,
     MAX ( el CASO de golf, el CUANDO  ' lenguaje '  ENTONCES Puntuación ELSE  0  END idioma),
     MAX ( el CASO de golf, el CUANDO  ' Inglés '  ENTONCES Puntuación ELSE  0  END ) inglés
 del FROM test_tb_grade
 el GRUPO  POR  USER_NAME ;
Ver código

 

Después de girar a la fila columna

# line columnas interruptor
 SELECT  USER_NAME , ' lenguaje ' CURSO, MAX (idioma) COMO Puntuación de la Resultado del GRUPO  por  USER_NAME  de la Unión  ALL 
SELECT  USER_NAME , ' matemáticas ' CURSO, MAX (Matemáticas) AS Puntuación del resultado   del GRUPO  por  USER_NAME  de la Unión  ALL 
SELECT  USER_NAME , ' Inglés ' CURSO, MAX (Inglés) COMO Puntuación decomo resultado   GRUPO  por  USER_NAME
Ver código

Los cambios se convierten columnas fila

 

Supongo que te gusta

Origin www.cnblogs.com/botaoli/p/12661468.html
Recomendado
Clasificación