CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

question sql : remplacer une valeur null

iscario
iscario
Niveau 7
02 décembre 2009 à 11:32:59

Bonjour,

Je fais une interrogation à ma table sql, mais certain des champs qu'elle ramène sont à valeur "null".
J'aimerai pouvoir (en sql) remplacer le null par un texte générique genre "inconnu".

Voici ma requète par exemple :
SELECT
P.perso.nom,P.perso.prenom,P.perso.metier,P.perso.
type_perso
FROM t_lien P
WHERE P.album = (
SELECT REF(A)
FROM t_album A
WHERE num = 3
);

Parfois type_perso n'est pas renseigné, et j'aimerai remplacer le "null" qui m'est retourné.
Par contre je ne peux pas gérer ca coté appli, jsutement car ce n'est pas pour une appli (c'est dans le cadre d'un cours d'oracle en fait).

Merci à vous

Pseudo supprimé
Pseudo supprimé 02 décembre 2009 à 15:35:17

COALESCE(P.perso.type_perso, 'inconnu')

godrik
godrik
Niveau 30
02 décembre 2009 à 16:27:27

Je ne connaissais pas la fonction COALESCE. Merci de cette contribution.

iscario
iscario
Niveau 7
02 décembre 2009 à 18:06:39

ah moi non plus... ca tombe bien :-d
merci, je teste ce soir!

_skip
_skip
Niveau 10
02 décembre 2009 à 18:08:42

Il faut juste savoir que dans les order by et les where, COALESCE annule les indexs.

Thicot
Thicot
Niveau 10
02 décembre 2009 à 19:40:03

Je ne sais pas si ça marche avec tous les SGBD mais sous ORACLE, la fonction NVL(champs, 'Valeur') permet de remplacer les valeurs NULL par la valeur de ton choix. Il faudrait juste vérifier que ça marche ailleurs. (sauf si tu bosses sous Oracle, dans ce cas là, pas de soucis :-d )

Thicot
Thicot
Niveau 10
02 décembre 2009 à 19:40:57

Oups, j'avais pas lu le post jusqu'à la fin ^^

Bon bah vu que c'est pour Oracle, y'a pas de problème alors, la fonction NVL marche à merveille :ok:

godrik
godrik
Niveau 30
02 décembre 2009 à 19:46:14

Pour info; je pense que NVL casse les indexes comme COALESCE.

Pseudo supprimé
Pseudo supprimé 02 décembre 2009 à 20:45:34

NVL est spécifique à oracle, COALESCE fait partie du standard.

NVL ne prend que 2 arguments, COALESCE peut en prendre plus.
Tu peux avoir des problèmes de type avec COALESCE, pas avec NVL je crois. Il vaut mieux que les arguments de COALESCE soient du même type. ^^

Sinon, il faut aussi savoir que NVL évalue TOUS ses arguments, alors que COALESCE s'arrête au premier non-NULL. Ça peut donc faire baisser les performances si tu as des paramètres coûteux.

_skip
_skip
Niveau 10
03 décembre 2009 à 08:21:42

Pour conclure, je dirai que si c'est pour présenter les enregistrements à l'utilisateur, il est pas trop recommandé de changer les NULL en autre chose au niveau de la requête mais plutôt de gérer ça coté client au niveau présentation.

Pourquoi ça? Pas seulement pour la sacro-sainte séparation des couches mais surtout pour une éventuelle internationalisation.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment