Je veux afficher tous les numéros de téléphone de mon customer(Customertable)
.
Mais s'il n'y a pas de numéro de téléphone parce que le client n'en a pas laissé, je veux afficher une note disant "Aucun numéro de téléphone".
Je l'ai essayé avec la command
Select phonenumber From Customers if phonenumber is NUll RAISEERROR 'No phonenumber' -error
Mais j'ai une erreur:
"Phonenumber" n'est pas un nom de colonne valide
et je suppose que RAISEERROR
n'est pas aussi la bonne façon d'afficher une note (?!)
S'il vous plaît aider
Désolé pour un mauvais anglais.
Pourquoi ne pas simplement utiliser coalesce
pour returnner la première valeur non nulle?
SELECT COALESCE(phonenumber, 'no phone number') FROM customers
RAISEEROR
semble plutôt brutal.
Vous pourriez faire quelque chose comme ceci:
SELECT COALESCE(MAX(phonenumber), 'No phonenumber') FROM Customers WHERE CustomerId = @CustomerId;
Le but de MAX()
est de returnner une seule ligne pour un client donné.
Cependant, ce type de logique doit être au niveau de la couche d'application et probablement pas embedded dans la requête.
Vous pouvez essayer ceci, je ne sais pas ce que vous voulez dire par là, il n'y a pas de numéro de téléphone, cela peut être nul ou un caractère vide, donc c'est mon truc:
Select case when phonenumber is null or phonenumber ="" then 'No phonenumber' else phonenumber end FROM Customers
Vous pouvez utiliser la fonction ISNULL
ISNULL (check_expression, rlocation_value)
Veuillez find la description sur MSDN
J'espère que cela t'aidera
SELECT ISNULL(phonenumber, 'no phone number') FROM customers