Maison > Article > base de données > Explication détaillée de l'utilisation de la fonction de décodage dans Oracle
La fonction decode() est l'une des fonctions les plus puissantes d'ORACLE PL/SQL. Actuellement, seul SQL d'ORACLE fournit cette fonction, et les implémentations SQL d'autres fabricants de bases de données ne disposent pas encore de cette fonction. Cet article présente principalement les informations pertinentes sur l'utilisation de la fonction de décodage dans Oracle. Les amis qui en ont besoin peuvent s'y référer. J'espère que cela sera utile.
Explication du sens :
decode(condition, valeur 1, valeur de retour 1, valeur 2, valeur de retour 2,... valeur n, retour valeur n, valeur 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 decode(字段或字段的运算,值1,值2,值3)
Le résultat de cette fonction est que lorsque la valeur du champ ou de l'opération sur le terrain est égale à la valeur 1, la fonction renvoie la valeur 2, sinon 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
Utilisation. :
1. Comparez les tailles
sélectionnez decode(sign(variable 1-variable 2),-1, variable 1, variable 2) from dual --prenez la valeur la plus petite ;
La fonction sign() renvoie respectivement 0, 1 et -1 selon qu'une valeur est 0, un nombre positif ou un nombre négatif
Par exemple :
Variable 1=10, Variable 2=20
Ensuite, le signe (variable 1-variable 2) renvoie -1, et le résultat du décodage est "variable 1", atteignant l'objectif de prendre une valeur plus petite.
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 valeur de retour.
La fonction Decode est très utile en développement réel
Combinée avec la fonction Lpad, comment ajouter automatiquement 1 à la valeur de la clé primaire et ajouter 0 devant
select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis eg: select decode(dir,1,0,1) from a1_interval
valeur dir Si c'est 1, ça devient 0, si c'est 0, ça devient 1
Par exemple, je veux interroger le nombre de garçons et de filles dans une certaine classe
Habituellement, nous écrivons comme ceci :
select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女;
Si vous souhaitez 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
select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表 eg: select sum(decode(siteno,'LT',1,0)),sum(decode(siteno,'SZ',1,0)) from facd605; select sum(case siteno when 'LT' then 1 else 0 end),sum(case siteno when 'SZ' then 1 else 0 end) from facd605; vinson
Recommandations associées :
La méthode PHP json_decode ne peut pas analyser les caractères de point d'interrogation spéciaux
Comment PHP implémente json_decode sans échapper à l'introduction de la méthode chinoise
Comparez json_encode et La différence entre json_decode
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!