J'ai une question SQL qui peut être basique à certains mais me confondre. p>
Voici un exemple de noms de colonnes pour une table 'personne': Personnier, Prénom, Nom, Voiture, Colérie, Favdrink, FavFood P>
Disons que je saisis la ligne: p>
121312, Rayna, Pieterson, BMW123D, Brown, NULL, NULL P> blockQuote>
Maintenant, je veux mettre à jour les valeurs de cette personne, mais uniquement si la nouvelle valeur n'est pas NULL, MISE À JOUR: P>
121312, Rayna, Pieterson, NULL, Blonde, Fanta, Null P> blockQuote>
La nouvelle ligne doit être: p>
121312, Rayna, Pieterson, BMW123D, Blonde, Fanta, Null P> blockQuote>
Alors je pensais quelque chose dans le sens de: p>
Mettre à jour la personne (Personnale, prénom, nom de famille, voiture, coiffure, Favdrink, favfood) set voiture = @CAR (où @CAR n'est pas null), ColleColour = @AirColour (où @AirColour ...) ... etc. P> blockQuote>
Mon seul problème est que je ne peux pas regrouper toutes les conditions à la fin de la requête, car elle nécessitera toutes les valeurs d'avoir la même condition. Je ne peux pas faire quelque chose comme la mise à jour coiffure si @ Haircolour n'est pas null p>
4 Réponses :
Les éléments suivants doivent fonctionner: Il utilise le serveur SQL ISNULL fonction, qui retourne p>
Cela fonctionne également tout aussi bien qu'en utilisant des coalesce. Merci de votre aide. Désolé, j'ai accepté l'autre réponse comme ils étaient d'abord à répondre.
Définissez la colonne égale à elle-même avec un rond isnull qui le réglait à votre paramètre.
UPDATE YourTable SET YourColumn = ISNULL(YourColumn, @yourParameter) WHERE ID = @id
Ce n'est pas la question de la question. Quote: "Mettez à jour les valeurs de cette personne, mais uniquement si la valeur nouvelle i> n'est pas null"
ID Utilisez Coallece pour ceci: http://msdn.microsoft.com/en-us/library/ms190349.aspx
update Person set Car = coalesce(@Car, Car), HairColour = coalesce(@HairColour, HairColour)
MySQL Référence: dev.mysql.com/doc/refman /5.0/fr/...
Merci beaucoup pour votre aide. Je pensais utiliser cette fonction mais je ne pouvais pas comprendre comment cela a fonctionné exactement. Cheers travaille un rêve
Vous pouvez utiliser la fonction isnull code>:
WOW: 5 minutes de silence, puis 4 personnes répondant à la même chose en même temps. :-)
Haha je sais que c'est génial, n'est-ce pas.