Maison  >  Article  >  base de données  >  Quelle est l'utilité du décodage dans Oracle

Quelle est l'utilité du décodage dans Oracle

WBOY
WBOYoriginal
2022-03-01 10:23:5742728parcourir

Dans Oracle, la fonction decode() est utilisée pour comparer la valeur d'entrée avec la liste de paramètres dans la fonction et renvoyer une valeur correspondante basée sur la valeur d'entrée. La syntaxe est "decode(condition, valeur 1, valeur de retour 1). , valeur 2, valeur de retour 2,...valeur n, valeur de retour n, valeur par défaut)".

Quelle est l'utilité du décodage dans Oracle

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

Quelle est l'utilisation du décodage dans Oracle ?

Utilisation du décodage de la fonction Oracle :

decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值);

C'est l'expression du décodage.

 Fonction DECODE(), qui compare la valeur d'entrée avec la liste de paramètres de la fonction et renvoie une valeur correspondante basée sur la valeur d'entrée. La liste des paramètres d'une fonction est composée de plusieurs valeurs numériques et de leurs valeurs de résultat correspondantes. Plusieurs formes paires ordinales. Bien entendu, si elle ne parvient pas à correspondre à l’une des séquences de paramètres réelles, la fonction a également une valeur de retour par défaut.

La signification de cette fonction est la suivante :

IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

décoder (champ ou opération sur champ, valeur 1, valeur 2, valeur 3)

    Le résultat de cette fonction est que lorsque la valeur du champ ou de l'opération sur champ est égale à la valeur 1, Cette fonction renvoie la valeur 2, sinon elle renvoie la valeur 3

Bien sûr, la valeur 1, la valeur 2 et la valeur 3 peuvent également être des expressions Cette fonction rend certaines instructions SQL beaucoup plus simples

Méthode d'utilisation :

1. Comparez size

select decode(sign(variable 1-variable 2),-1, variable 1, variable 2) from dual; --Prenez la plus petite valeur

sign() la fonction renvoie respectivement selon qu'une valeur est 0, un nombre positif ou un nombre négatif 0, 1, -1

Par exemple :

Variable 1=10, Variable 2=20

Puis le signe (Variable 1-Variable 2) renvoie -1, et le résultat du décodage est " Variable 1", qui est la valeur la plus petite. objectif de valeur.

2. Cette fonction est utilisée dans les instructions SQL. La fonction est présentée comme suit :

La fonction Decode est similaire à une série d'instructions IF-THEN-ELSE imbriquées. base_exp est comparée à compare1, compare2, etc. dans l'ordre. Si base_exp correspond au i-ème élément de comparaison, renvoie la i-ème valeur correspondante. Si base_exp ne correspond à aucune valeur de comparaison, la valeur par défaut est renvoyée. Chaque valeur de comparaison est évaluée dans l'ordre, et si une correspondance est trouvée, les valeurs de comparaison restantes (le cas échéant) ne sont pas évaluées à nouveau. Une base_exp NULL est considérée comme équivalente à une valeur de comparaison NULL. Si nécessaire, chaque valeur de comparaison est convertie dans le même type de données que la première valeur de comparaison, qui est également le type de la valeur de retour.

La fonction de décodage est très utile dans le développement réel

Combinée avec la fonction Lpad, comment ajouter automatiquement 1 à la valeur de la clé primaire et ajouter 0 devant

sélectionnez LPAD(decode(count(record number),0,1 ,max(to_number (Record number)+1)),14,'0') Numéro d'enregistrement de tetdmis

eg:

select decode(dir,1,0,1) from a1_interval

dir La valeur est 1 et passe à 0, et si elle est 0, elle devient 1

Par exemple, je veux interroger les garçons d'une certaine classe et le nombre de filles ?

Habituellement, nous écrivons comme ceci :

select count(*) from 表 where 性别 = 男;
select count(*) from 表 where 性别 = 女;

Si vous voulez les afficher ensemble, vous devez les unir, ce qui est trop gênant

Pour utiliser le décodage, vous n'avez besoin que d'une seule phrase

sélectionnez décodage (sexe, masculin, 1, 0), décodage (sexe, féminin, 1, 0) dans le tableau

3, commandez par pour effectuer un tri spécifique des colonnes de caractères

Vous pouvez également utiliser Decode dans Order by.

Exemple : La table table_subject a la colonne subject_name. Il est nécessaire de les trier par ordre : langue, nombre et langue étrangère. À ce stade, vous pouvez facilement utiliser Decode pour remplir les conditions requises.

select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)

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