7
votes

Sélectionnez un bit nullable avec une valeur par défaut

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,
...


0 commentaires

4 Réponses :


10
votes

Utilisez la fonction ISNULL.

isnull(bit_column, 0)


0 commentaires

5
votes
SELECT coalesce(bit_column,0) bit_column

7 commentaires

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


@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.



0
votes

Jetez un coup d'œil à coalesce


0 commentaires

0
votes

pour T-SQL Utilisez

 , examStatus.text
 , COALESCE(examStatus.archived, cast(0 as bit))


0 commentaires