Bonjour,
Certains de mes CASE WHEN ne fonctionnent pas car les champs concernés sont NULL ou possèdent une chaîne de caractères vide (le résultat du code ci-après est NULL pour les deux derniers champs).
J'ai l'impression que c'est surtout la fonction IN qui pose problème. Toutes les entités sont tout de même retournées.
Savez-vous d'où vient mon erreur ? Le champ devrait être un booléen, mais le typage n'est pas nécessairement de type booléen...
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT gid ,CASE WHEN champ IN ('T','F','1','0','TRUE','FALSE') THEN 'OK' WHEN champ NOT IN ('T','F','1','0','TRUE','FALSE') THEN 'NOK' ELSE NULL END AS statut ,CASE WHEN champ IN ('T','F','1','0','TRUE','FALSE') THEN concat('La valeur ',code,' est autorisée') WHEN champ NOT IN ('T','F','1','0','TRUE','FALSE') THEN concat('La valeur ',code,' n''est pas autorisée') ELSE NULL END AS details FROM input.shape
Edit : les 4 champs concernés dont le remplissage est NULL ou ayant une chaîne de caractères vide... devraient bien sûr ressortir en 'NOK'.






Répondre avec citation



Partager