ici dans cette requête, je veux remplacer les valeurs en personne.Contact de la base de données AventureWorks avec de nouvelles valeurs. La déclaration de cas de requête ci-dessous fonctionne bien pour d'autres valeurs, mais je ne suis pas en mesure de modifier les valeurs qui sont à NULL. J'utilise SQL Server. Toute aide est appréciée.
select contactid,Title,FirstName,MiddleName, case MiddleName when 'R.' then 'Robert' when 'B.' then 'Bids' when 'J.' then 'John' when is null then 'New Name' else 'No Name' end, LastName from Person.Contact
3 Réponses :
case when MiddleName is null then ... when MiddleName = 'R' then ... end
J'utiliserais la fonction Isnull - il retournera la valeur donnée si le champ est NULL:
select contactid,Title,FirstName,MiddleName, case ISNULL(MiddleName, 'NULLVALUE') when 'R.' then 'Robert' when 'B.' then 'Bids' when 'J.' then 'John' when 'NULLVALUE' then 'New Name' else 'No Name' end, LastName from Person.Contact
Je suis d'accord. Espérons simplement que personne n'a «nullvalue» comme prénom.
Est-ce que cela ressemble de petites tables de chute de bobby?
@Johndunagan bien, notre est moins dangereux
Désolé de poster 7 ans plus tard, mais j'essaie de trouver une solution pour Interbase / Firebird et ce post continua à sauter. Aucune des solutions ici ne fonctionne ici car il n'y a pas d'isnull, j'ai donc pensé que j'aiderais quelqu'un d'autre qui pourrait venir ici à la recherche de ce:
Firebird n'a pas est null code> aussi (par opposition à isnull code> )?
Merci beaucoup .. eu le même problème avec l'utilisation d'Interbase qui n'a pas d'isnull mais votre code a fonctionné!
@Gserg Firebird pourrait, mais je travaillais dans Interbase ... Firebird semble avoir plus de fonctionnalités, mais tout ce qui fonctionne dans Interbase devrait travailler dans Firebird, mais pas l'inverse. De plus, j'ai vu toutes sortes de liens pour configurer votre propre UDF pour Isnull, mais cela semblait un peu au-delà de ce que j'avais besoin de faire.