Je dois sélectionner une colonne de bits nullable dans une vue, mais utilisez une valeur par défaut de FALSE chaque fois que la valeur est null. (Pour d'autres raisons, je ne peux pas ajouter la valeur par défaut sur la table source elle-même.) Voici ce que je fais.
CAST ( CASE WHEN bit_column IS NULL THEN 0 ELSE bit_column END AS BIT ) AS bit_column, ...
4 Réponses :
Utilisez la fonction ISNULL.
isnull(bit_column, 0)
SELECT coalesce(bit_column,0) bit_column
Quel type de données sera envoyé au client? int ou bit?
Un peu sera envoyé au client.
Bonne question, je l'ai recherchée et j'ai trouvé ce lien: Bases de données.aspfaq.com /database/coalesce-vs-isnull-sql.html à partir de là, "Foalise fonctionne davantage comme une expression de cas, qui renvoie un seul type de données en fonction de la préjudice et de l'adaptation de tous les résultats possibles". Donc je ne suis pas sûr. Mais sur le côté du client, 0 ou 1 conviendra dans un peu ou un int, donc je ne suis pas sûr que cela compte.
Merci pour le lien. Cela semble que puisque je souhaite toujours que le résultat ait le type de données du premier paramètre, je devrais utiliser Isnull. Isnull me permet également de voir vrai ou faux (préféré plus de 1 ou 0) lorsque je parcourais la vue dans SQL Server Management Studio. Je vais donc accepter la réponse Isnull. Cependant, je peux voir de nombreuses situations où la coalesce est un meilleur choix. Merci de votre aide.
Sélectionnez Coalesce (bit_column, couler (0 comme bit)) bit_column code>
@Shannon Séverance: c'est trop loin pour éviter Isnull
@GBN: C'est pourquoi c'est un commentaire et non une réponse. Mais sachant qu'une autre option ne peut pas faire mal.
pour T-SQL Utilisez
, examStatus.text , COALESCE(examStatus.archived, cast(0 as bit))