Comment réaliser une conversion ligne-colonne dans Oracle
Méthodes pour implémenter la conversion ligne-colonne : 1. Utilisez la fonction PIVOT() pour implémenter la conversion ligne-colonne, avec la syntaxe "SELECT * FROM (ensemble de données) PIVOT (SUM(Score) FOR coursename IN (colonne convertie value))"; 2. Utilisez la fonction unpivot() pour réaliser la commutation de colonnes.
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.
Ligne Oracle en colonne
La ligne Oracle en colonne consiste à convertir la valeur d'un certain champ en valeur unique, puis à convertir la valeur de ligne d'un autre champ en sa valeur de colonne. Ici, nous utilisons toujours le tableau des scores des élèves de notre système comme exemple. Les enregistrements du tableau des scores (lignes) correspondent aux scores de chaque élève dans chaque matière. Ensuite, nous devons créer un rapport qui affiche toutes les matières de chaque élève comme une seule. colonne d’informations sur les performances. Les données du cas sont les suivantes :
Alors comment y parvenir ? Voici plusieurs méthodes une par une :
1. Tout d'abord, il faut penser qu'il devrait être possible d'utiliser le regroupement Oracle (group by). Le code d'implémentation est le suivant :
select c.stuname, --利用分组聚合函数 sum(decode(b.coursename, '英语(2018上学期)', t.score, 0)) as "英语(2018上学期)", sum(decode(b.coursename, '数学(2018上学期)', t.score, 0)) as "英语(2018上学期)", sum(decode(b.coursename, '语文(2018上学期)', t.score, 0)) as "英语(2018上学期)" from STUDENT.SCORE t, student.course b, student.stuinfo c where t.courseid = b.courseid and t.stuid = c.stuid group by c.stuname
Nous utilisons group by pour regrouper les étudiants. , puis utilisez le décodage pour regrouper les étudiants. Convertissez la valeur de la note du cours correspondant, puis résumez-la pour obtenir la valeur du résultat de la note :
2. -dans la fonction PIVOT, qui peut parfaitement résoudre cette exigence de ligne à colonne, la structure syntaxique spécifique est la suivante :
SELECT * FROM (数据查询集)PIVOT ( SUM(Score/*行转列后 列的值*/) FOR coursename/*需要行转列的列*/ IN (转换后列的值) )
Le code spécifique est le suivant :
select * from (select c.stuname, b.coursename, t.score from STUDENT.SCORE t, student.course b, student.stuinfo c where t.courseid = b.courseid and t.stuid = c.stuid ) /*数据源*/PIVOT ( SUM(score/*行转列后 列的值*/) FOR coursename/*需要行转列的列*/ IN ('英语(2018上学期)' as 英语,'数学(2018上学期)' as 数学,'语文(2018上学期)' as 语文 ) ) ;
Le résultat est le suivant :
Conversion de ligne de colonne Oracle
La conversion de ligne de colonne Oracle consiste à modifier les champs des colonnes d'une ligne en fonction de la valeur unique de la ligne Convertir en plusieurs lignes de données. Par exemple, les données de base du tableau des performances des élèves dans la conversion de ligne en colonne Oracle ci-dessus sont que les performances d'un élève dans une matière correspondent à un enregistrement. Ensuite, nous avons converti les lignes en colonnes et les avons transformés en un enregistrement correspondant au score d'un élève dans chaque colonne (mathématiques, anglais, chinois). Cet article consiste donc à convertir à nouveau le tableau de scores des étudiants précédemment converti (table de sauvegarde score_copy) en colonnes et en lignes et à le convertir en données originales. Les données du cas sont les suivantes :
Alors, comment implémenter le changement de colonne ? Deux méthodes courantes sont présentées ci-dessous :
1. Utilisez union all pour l'épissage, qui peut parfaitement convertir les colonnes correspondantes en enregistrements de ligne. Le code spécifique est le suivant :
select t.stuname, '英语' as coursename ,t.英语 as score from SCORE_COPY t union all select t.stuname, '数学' as coursename ,t.数学 as score from SCORE_COPY t union all select t.stuname, '语文' as coursename ,t.语文 as score from SCORE_COPY t
Les résultats sont les suivants :
2. .Utilisez Oracle pour automatiquement La fonction non-pivot de colonne à ligne peut également parfaitement résoudre ce problème. La structure syntaxique spécifique est la suivante :
select 字段 from 数据集 unpivot(自定义列名/*列的值*/ for 自定义列名 in(列名))
Le code d'implémentation est le suivant :
select stuname, coursename ,score from score_copy t unpivot (score for coursename in (英语,数学,语文))
Les résultats sont les suivants :
Tutoriel recommandé : "Tutoriel 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pour interroger la taille de l'espace de table Oracle, suivez les étapes suivantes: Déterminez le nom de l'espace de table en exécutant la requête: sélectionnez Tablespace_name dans dba_tablespaces; Requête la taille de l'espace de table en exécutant la requête: sélectionnez SUM (Bytes) comme total_size, sum (bytes_free) comme disponible_space, sum (bytes) - sum (bytes_free) comme used_space à partir de dba_data_files où tablespace_

Oracle View Encryption vous permet de crypter les données dans la vue, améliorant ainsi la sécurité des informations sensibles. Les étapes incluent: 1) la création de la clé de cryptage maître (MEK); 2) Création d'une vue cryptée, spécifiant la vue et MEK à crypter; 3) Autoriser les utilisateurs à accéder à la vue cryptée. Comment fonctionnent les vues cryptées: lorsqu'un utilisateur interroge pour une vue cryptée, Oracle utilise MEK pour décrypter les données, garantissant que seuls les utilisateurs autorisés peuvent accéder aux données lisibles.

Il existe trois façons d'afficher les noms d'instance dans Oracle: utilisez le "SQLPlus" et "SELECT INSTRESS_NAME FROM V $ INSTERNE;" Commandes sur la ligne de commande. Utilisez "Show instance_name;" Commande dans SQL * Plus. Vérifiez les variables d'environnement (Oracle_sid sur Linux) via le gestionnaire de tâches du système d'exploitation, Oracle Enterprise Manager ou via le système d'exploitation.

Désinstaller la méthode pour la défaillance de l'installation d'Oracle: Fermez le service Oracle, supprimez les fichiers du programme Oracle et les clés de registre, désinstallez les variables d'environnement Oracle et redémarrez l'ordinateur. Si la désinstallation échoue, vous pouvez désinstaller manuellement à l'aide de l'outil Oracle Universal Disinstal.

Méthode d'importation de données: 1. Utilisez l'utilitaire SqlLoader: Préparez les fichiers de données, créez des fichiers de contrôle et exécutez SqlLoader; 2. Utilisez l'outil IMP / EXP: les données d'exportation, les données d'importation. Astuce: 1. Chargeur SQL * recommandé pour les ensembles de Big Data; 2. La table cible doit exister et la définition de la colonne correspond; 3. Après l'importation, l'intégrité des données doit être vérifiée.

Il existe les méthodes suivantes pour obtenir du temps dans Oracle: current_timestamp: renvoie le temps du système actuel, précis en secondes. Systimestamp: plus précis que current_timestamp, aux nanosecondes. Sysdate: renvoie la date du système actuelle, à l'exclusion de la partie d'heure. To_char (sysdate, 'yyy-mm-dd hh24: mi: ss'): convertit la date et l'heure du système actuels en format spécifique. Extrait: extrait une partie spécifique d'une valeur temporelle, comme un an, un mois ou une heure.

Pour créer un utilisateur dans Oracle, suivez ces étapes: créez un nouvel utilisateur à l'aide de l'instruction Créer des utilisateurs. Accorder les autorisations nécessaires en utilisant la déclaration de subvention. Facultatif: utilisez l'instruction RESSOURCE pour définir le quota. Configurez d'autres options telles que les rôles par défaut et les espaces de table temporaires.

Les instructions SQL peuvent être créées et exécutées en fonction de l'entrée d'exécution en utilisant Dynamic SQL d'Oracle. Les étapes comprennent: la préparation d'une variable de chaîne vide pour stocker des instructions SQL générées dynamiquement. Utilisez l'instruction EXECUTER IMMÉDIATE OU PRÉPEPART pour compiler et exécuter les instructions SQL dynamiques. Utilisez la variable Bind pour passer l'entrée utilisateur ou d'autres valeurs dynamiques à Dynamic SQL. Utilisez EXECUTER immédiat ou exécuter pour exécuter des instructions SQL dynamiques.
