Maison > Article > base de données > Quelle est l'utilité du décodage dans Oracle
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)".
L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.
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!