|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 2 ![]() |
Bonjour à tous,
Voici l'idée générale de ma requête. Je souhaiterais pouvoir remplir automatiquement un champ par concaténation via un trigger. Ce trigger appel une fonction qui met des conditions à cette mise à jour. Voici l'idée : Code :
Merci d'avance. Geo-x |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Le ELSIF nom devrait certainement être ELSIF nom IS NOT NULL.
A part ça, il me semble que tout le bout de code peut se réduire à cette ligne, qui produira le même résultat: Code :
|
||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 2 ![]() |
Bonjour estofilo,
J'avoue que l'utilisation que tu fais de "coalesce" fonctionne magistralement bien! ![]() Mais j'aimerais comprendre un peu mieux ce que fait cette fonction, j'ai lu une dizaine de docs sur le net mais je ne comprend pas bien. Visiblement, elle retourne les valeurs nulls sur les colonnes que l'on met entre parenthèse mais là tu l'a utilisé en lui faisant dire un truc du genre : 'Renvoies moi une concaténation du code_insee et du nom sinon, si une de ces valeurs est null tu ne mets rien' |
|
|
00
|
|
|
#4 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Dans la définition de NULL, il est prévu que NULL <opérateur> <expression> renvoie toujours NULL.
Dans ton cas, la concaténation avec l'une des colonnes à NULL renverra NULL... Attention, bien que ce soit ce qui est prévu par la norme, tous les SGBD ne respectent pas cette règle.
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
10
|
|
|
#5 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
coalesce(a,b) renvoie simplement a si a n'est pas NULL, et sinon elle renvoie b.
a et b peuvent être des colonnes dans une requête, mais ils peuvent aussi être n'importe quelle expression. |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com