Table des matières
1. Trier par un seul champ
. 2 . Trier par plusieurs champs
3. Trier par sous-chaîne
4. TRANSLATE
5. Trier par lettres dans une chaîne mixte de chiffres et de lettres
6. les valeurs sont dans Plus tard, que dois-je faire si je souhaite afficher la valeur nulle (telle que emp.comm) au premier plan Dois-je utiliser NVL (comm, -1) ?
7. 根据条件取不同列中的值来排序
Maison base de données Oracle Parlons des différents tris de ORDER BY dans ORACLE

Parlons des différents tris de ORDER BY dans ORACLE

Mar 17, 2022 pm 06:49 PM
oracle

Cet article vous apporte des connaissances pertinentes sur Oracle, qui introduit principalement des problèmes liés au tri multiple de ORDER BY, y compris le tri par un seul champ, le tri par plusieurs champs, le tri par sous-chaînes, etc., j'espère que cela aidera tout le monde.

Parlons des différents tris de ORDER BY dans ORACLE

Tutoriel recommandé : "Tutoriel Oracle Learning"

1. Trier par un seul champ

Ordre croissant : ORDER BY ASC (par défaut)

Ordre décroissant : ORDER BY DESC

Renvoyer les résultats réels de la requête dans l'ordre spécifié Lors de l'extraction de données ou de la génération de rapports, il est généralement nécessaire de les visualiser dans un certain ordre. Par exemple, si vous souhaitez visualiser les informations sur les employés employés par l'unité.

SELECT empno, ename, hiredate FROM emp WHERE deptno = 10 ORDER BY hiredate ASC;
Copier après la connexion

Beaucoup de gens peuvent écrire ce genre d'instruction pour trier les résultats de la requête, mais en plus de "ORDER BY steadyate ASC", vous pouvez également écrire "ORDER BY 3 ASC", ce qui signifie trier par la troisième colonne.

SELECT empno, ename, hiredate FROM emp WHERE deptno = 10 ORDER BY 3 ASC;
Copier après la connexion

Lorsque la valeur est incertaine, il est très pratique d'utiliser cette méthode. Il convient de noter que

l'utilisation de données pour remplacer la position de la colonne ne peut être utilisée que dans la clause order by et ne peut pas être utilisée ailleurs

. 2 . Trier par plusieurs champs

Et si vous triez sur plusieurs colonnes et qu'il y a une augmentation ou une diminution ? Par exemple, lors du tri par numéro de département par ordre croissant et salaire par ordre décroissant, il y a deux mots-clés : ASC signifie ordre croissant et DESC signifie ordre décroissant. Nous ajoutons donc deux colonnes après ordre par et marquons respectivement ASC et DESC.

SELECT empno, deptno, sal, ename, job FROM emp ORDER BY 2 ASC, 3 DESC;
Copier après la connexion

Ce qui suit est introduit sous la forme d'un diagramme, comme le montre la figure ci-dessous, lors du tri de plusieurs colonnes, si la colonne précédente a des valeurs en double (telles que deptno = 10 avec 3 lignes de données). , le tri ultérieur ne sera que utile. Cela équivaut à diviser les données en plusieurs groupes selon les colonnes précédentes, puis à trier les données de chaque groupe selon les colonnes suivantes.

3. Trier par sous-chaîne

Un moyen rapide de trier par sous-chaîne consiste à enregistrer le numéro de téléphone du client dans l'ordre du dernier numéro, afin de pouvoir rapidement affiner la portée de la requête et améliorer la reconnaissance du client. . Si vous souhaitez trier de cette manière, que devez-vous faire ? Utilisez simplement la fonction pour obtenir les informations requises pour les bits suivants.

SELECT last_name AS 名称,
       phone_number AS 号码,
       salary as 工资,
       substr(phone_number, -4) AS 尾号
  FROM hr.employees
 WHERE rownum < 5
 ORDER BY 4;
Copier après la connexion

On voit que tant que les données peuvent être interrogées, elles peuvent être triées en fonction des informations correspondantes.

4. TRANSLATE

Format de grammaire : TRANSLATE (expr, from_string, to_string)

Les exemples sont les suivants :

SELECT TRANSLATE( &#39;ab 你好 bcadefg&#39;, &#39;abcdefg&#39;, &#39;1234567&#39; ) AS NEW_STR FROM DUAL;
Copier après la connexion

from_string et to_string sont en unités de caractères, et les caractères correspondants sont remplacés un par un. .

Si to_string est vide, une valeur nulle sera renvoyée

SELECT TRANSLATE( &#39;ab 你好 bcadefg&#39;, &#39;abcdefg&#39;, &#39;&#39; ) AS NEW_STR FROM DUAL;
Copier après la connexion

S'il n'y a aucun caractère dans la position correspondante de to_string, la suppression des caractères répertoriés dans from_string sera éliminée.

SELECT TRANSLATE( &#39;ab 你好 bcadefg&#39;, &#39;1abcdefg&#39;, &#39;1&#39; ) AS NEW_STR FROM DUAL;
Copier après la connexion

5. Trier par lettres dans une chaîne mixte de chiffres et de lettres

Créez d'abord la VUE comme suit :

CREATE OR REPLACE VIEW V 
as 
SELECT empno || &#39; &#39; || ename AS data FROM emp;
Copier après la connexion
select * from V;
Copier après la connexion

Cette exigence est un peu plus difficile, voyez les lettres. à l'intérieur (est-ce le nom de la colonne d'origine) ? Nécessite un ordre alphabétique (nom de la colonne).

Ensuite, nous devons d'abord supprimer les lettres. Nous pouvons utiliser la fonction de remplacement de traduire pour remplacer les nombres et les espaces par des valeurs vides :

SELECt data, translate (data, &#39;- 0123456789&#39;, &#39;-&#39; )AS ename
  FROM v
 ORDER BY 2;
Copier après la connexion

6. les valeurs sont dans Plus tard, que dois-je faire si je souhaite afficher la valeur nulle (telle que emp.comm) au premier plan Dois-je utiliser NVL (comm, -1) ?

SELECT ename, sal, comm, nvl(comm, - 1) order_col FROM emp ORDER BY 4;
Copier après la connexion

也许很多人都是用的这种方法,但这种方法需要对列类型及其中保存的数据有所了解才行,而且保存的数据如果有变化,该语句就要重新维护。
其实可以用关键字 NULLS FIRST和 NULLS LAST。

空值在前

SELECT ename, sal, comm FROM emp ORDER BY 3 NULLS FIRST;
Copier après la connexion

空值在后

SELECT ename, sal, comm FROM emp ORDER BY 3 NULLS LAST;
Copier après la connexion

是不是要方便得多?

7. 根据条件取不同列中的值来排序

有时排序的要求会比较复杂,比如:领导对工资在1000到2000元之间的员工更感兴趣,于是要求工资在这个范围的员工要排在前面,以便优先査看。
对于这种需求,我们可以在查询中新生成一列,用多列排序的方法处理:

SELECT empno AS 编码,
       ename AS 姓名,
       CASE
         WHEN sal > 1000 AND sal < 2000 THEN
          1
         ELSE
          2
       END AS 级别,
       sal AS工资
  FROM emp
 WHERE deptno = 30
 ORDER BY 3, 4;
Copier après la connexion

可以看到,950与2850都排在了后面,也可以不显示级别,直接把 case when放在order by中

SELECT empno AS 编码, ename AS 姓名, sal AS工资
  FROM emp
 WHERE deptno = 30
 ORDER BY CASE
            WHEN sal >= 1000 AND sal < 2000 THEN
             1
            ElSE
             2
          END,
          3;
Copier après la connexion

 

推荐教程:《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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Combien de temps les journaux de la base de données Oracle seront-ils conservés ? Combien de temps les journaux de la base de données Oracle seront-ils conservés ? May 10, 2024 am 03:27 AM

La durée de conservation des journaux de la base de données Oracle dépend du type de journal et de la configuration, notamment : Redo logs : déterminé par la taille maximale configurée avec le paramètre "LOG_ARCHIVE_DEST". Redo logs archivés : Déterminé par la taille maximale configurée par le paramètre "DB_RECOVERY_FILE_DEST_SIZE". Redo logs en ligne : non archivés, perdus au redémarrage de la base de données et la durée de conservation est cohérente avec la durée d'exécution de l'instance. Journal d'audit : Configuré par le paramètre "AUDIT_TRAIL", conservé 30 jours par défaut.

Fonction pour calculer le nombre de jours entre deux dates dans Oracle Fonction pour calculer le nombre de jours entre deux dates dans Oracle May 08, 2024 pm 07:45 PM

La fonction dans Oracle pour calculer le nombre de jours entre deux dates est DATEDIFF(). L'utilisation spécifique est la suivante : Spécifiez l'unité d'intervalle de temps : intervalle (tel que jour, mois, année) Spécifiez deux valeurs de date : date1 et date2DATEDIFF(interval, date1, date2) Renvoie la différence en jours

L'ordre des étapes de démarrage de la base de données Oracle est L'ordre des étapes de démarrage de la base de données Oracle est May 10, 2024 am 01:48 AM

La séquence de démarrage de la base de données Oracle est la suivante : 1. Vérifiez les conditions préalables ; 2. Démarrez l'écouteur ; 3. Démarrez l'instance de base de données ; 4. Attendez que la base de données s'ouvre ; 6. Vérifiez l'état de la base de données ; . Activez le service (si nécessaire) ; 8. Testez la connexion.

Comment utiliser l'intervalle dans Oracle Comment utiliser l'intervalle dans Oracle May 08, 2024 pm 07:54 PM

Le type de données INTERVAL dans Oracle est utilisé pour représenter les intervalles de temps. La syntaxe est INTERVAL <precision> <unit> Vous pouvez utiliser des opérations d'addition, de soustraction, de multiplication et de division pour utiliser INTERVAL, ce qui convient aux scénarios tels que le stockage de données temporelles et. calculer les différences de dates.

De quelle quantité de mémoire Oracle a-t-il besoin ? De quelle quantité de mémoire Oracle a-t-il besoin ? May 10, 2024 am 04:12 AM

La quantité de mémoire requise par Oracle dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis : pour le stockage des tampons de données, des tampons d'index, l'exécution d'instructions SQL et la gestion du cache du dictionnaire de données. Le montant exact dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis. Les meilleures pratiques incluent la définition de la taille SGA appropriée, le dimensionnement des composants SGA, l'utilisation d'AMM et la surveillance de l'utilisation de la mémoire.

Comment voir le nombre d'occurrences d'un certain caractère dans Oracle Comment voir le nombre d'occurrences d'un certain caractère dans Oracle May 09, 2024 pm 09:33 PM

Pour trouver le nombre d'occurrences d'un caractère dans Oracle, effectuez les étapes suivantes : Obtenez la longueur totale d'une chaîne ; Obtenez la longueur de la sous-chaîne dans laquelle un caractère apparaît. Comptez le nombre d'occurrences d'un caractère en soustrayant la longueur de la sous-chaîne ; de la longueur totale.

Exigences de configuration matérielle du serveur de base de données Oracle Exigences de configuration matérielle du serveur de base de données Oracle May 10, 2024 am 04:00 AM

Exigences de configuration matérielle du serveur de base de données Oracle : Processeur : multicœur, avec une fréquence principale d'au moins 2,5 GHz Pour les grandes bases de données, 32 cœurs ou plus sont recommandés. Mémoire : au moins 8 Go pour les petites bases de données, 16 à 64 Go pour les tailles moyennes, jusqu'à 512 Go ou plus pour les grandes bases de données ou les charges de travail lourdes. Stockage : disques SSD ou NVMe, matrices RAID pour la redondance et les performances. Réseau : réseau haut débit (10GbE ou supérieur), carte réseau dédiée, réseau à faible latence. Autres : alimentation stable, composants redondants, système d'exploitation et logiciels compatibles, dissipation thermique et système de refroidissement.

Comment remplacer une chaîne dans Oracle Comment remplacer une chaîne dans Oracle May 08, 2024 pm 07:24 PM

La méthode de remplacement de chaînes dans Oracle consiste à utiliser la fonction REPLACE La syntaxe de cette fonction est : REPLACE(string, search_string, replace_string). Étapes d'utilisation : 1. Identifiez la sous-chaîne à remplacer ; 2. Déterminez la nouvelle chaîne pour remplacer la sous-chaîne ; 3. Utilisez la fonction REPLACE pour remplacer. L'utilisation avancée inclut : les remplacements multiples, le respect de la casse, le remplacement des caractères spéciaux, etc.

See all articles