Maison  >  Article  >  base de données  >  Comment transposer des lignes et des colonnes dans Oracle

Comment transposer des lignes et des colonnes dans Oracle

WBOY
WBOYoriginal
2022-01-25 10:55:556068parcourir

Comment transposer des lignes et des colonnes Oracle : 1. Utilisez la fonction pivot() pour transférer des lignes en colonnes, et la syntaxe est "pivot (fonction d'agrégation pour le nom de colonne dans (type))" ; fonction pour transférer des colonnes vers des lignes, et la syntaxe est " unpivot(nom de colonne pour le nom de colonne dans (type))".

Comment transposer des lignes et des colonnes dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Comment transposer des lignes et des colonnes dans Oracle

J'ai déjà été exposé à la transposition de lignes et de colonnes en SQL général. Pour transférer des lignes en colonnes, utilisez la fonction d'agrégation sum | max, puis combinez-la avec le cas when then else end. et pour transférer des colonnes, utilisez union ou union all. C'est en fait un peu gênant, et dans les données Oracle, une telle fonction est spécialement fournie pour réaliser la fonction de transposition de lignes et de colonnes.

Vous pouvez également utiliser le SQL général pour implémenter la transposition de lignes et de colonnes, mais Oracle fournit des fonctions spéciales pour gérer la transposition de lignes et de colonnes, c'est-à-dire en utilisant la fonction pivot et la fonction non-pivot, qui sont présentées ci-dessous.

1. Pivoter de ligne en colonne

La base de données Oracle fournit la fonction pivot pour réaliser la fonction de ligne en colonne. Elle obtient également l'effet de ligne en colonne ci-dessus. SQL peut également être écrit comme ceci :

SELECT NAME AS
	姓名,
	"'语文'",
	"'数学'",
	"'英语'" FROM
	stu_score pivot ( max( score ) FOR SUBJECT IN ( '语文', '数学', '英语' ) );

Les résultats de la requête. sont les suivants :

Comment transposer des lignes et des colonnes dans Oracle
2. Dépivoter la colonne en ligne

Oracle fournit la fonction non-pivot pour implémenter la fonction de colonne en ligne pour obtenir le même effet. SQL peut également être écrit comme ceci :

SELECT NAME AS
	姓名,
	月份,工资 
FROM
	e_sal unpivot ( 工资 FOR 月份 IN ( M_1, M_2, M_3, M_4 ) );

Les résultats de la requête. sont les suivants :

Comment transposer des lignes et des colonnes dans Oracle

Tutoriel recommandé : " Tutoriel vidéo Oracle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn