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;
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 );
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 ;
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 ;
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
Los cambios se convierten columnas fila