J'ai une instruction SELECT qui a une colonne qui est une valeur de code. Par ex. Au lieu de Java, son JV, et au lieu de Python, sa py. Cependant, au lieu de sortir la valeur codée, je voudrais les afficher comme Java ou Python, c'est-à-dire. Leur description complète. Y a-t-il un moyen de le faire avec PL / SQL? Toute aide serait grandement appréciée, merci! P>
4 Réponses :
Vous pouvez utiliser CASE CODE> EXPRESSE
decode(col, 'JV', 'Java',
'PY', 'Python'
'No Match'
)
Merci pour la réponse rapide. Et si j'ai d'autres colonnes pour sortir aussi, où dois-je écrire ce code?
@LoveProgramming Vous pouvez ajouter des colonnes comme Select Col1, Col2, Col3 de MyTable CODE>. Ou si vous devez avoir une déclaration de cas, ajoutez une autre déclaration
code>.
Notez qu'il n'est pas nécessaire de répéter la partie "myColumn =" de la comparaison sur chaque condition. Vous pouvez faire cela s'il y a un calcul complètement différent pour chaque condition, mais lorsque vous faites un décodage simple, vous pouvez simplement dire "cas mycolumn quand" JV "puis" Java "..."
étant donné que vous utilisez oracle, je vous recommanderais d'utiliser la fonction décodage code>:
Vous pouvez utiliser la fonction "décodage" ou une construction "cas", comme suit:
select DECODE(my_column, 'JV','Java', 'PY','Python', 'no_match_found') my_column_alias from my_table; select case my_column when 'JV' then 'Java' when 'PY' then 'Python' else 'no_match_found' end my_column_alias from my_table;
Bien qu'il existe plusieurs façons de coder durement, les données d'échantillonnage données, aucune n'est la méthode appropriée pour plus d'un ensemble très limité. La méthode appropriée consiste à créer une table de recherche. Dans ce cas, contient le code et le nom correspondant. Oui, il est assez excédent pendant 2 langues, mais que diriez-vous de Index Tiobe ou 700 énumérés à Wikipedia, ou les 9000 estimés environ 9000 dans la liste HOPL. Voir ici et liens supplémentaires plus. de Essayez-le avec vos valeurs codées dures. Ajoutez ensuite 30 - 40 autres ... p> p>
de
De plus, c'est une technique forte> technique standard forte> à la question sous-jacente OP: existe-t-il un moyen de donner des détails sur une valeur de code donnée.
Il est facilement étendu (il suffit d'ajouter une ligne à une table) et applicable à travers pratiquement tous les domaines (Abet avec de légères modifications).