Je suis en train de créer une vue où je veux une colonne de n'être que vrai ou faux. Cependant, il semble que peu importe ce que je fais, SQL Server (2008) estime que ma colonne de bits peut en quelque sorte être null.
J'ai une table appelée "Produit" à la colonne "Statut" qui est - INT, NULL
. En vue, je veux retourner une ligne pour chaque ligne de Produits, avec un PEU de colonne est définie sur true si le Produit.Le statut de la colonne est égal à 3, sinon le champ de bits doit être fausse.
Exemple SQL
SELECT CAST( CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
Si je enregistrez cette requête sous un point de vue et de regarder les colonnes de l'Explorateur d'Objets, la colonne HasStatus est définie à l' BIT, NULL
. Mais il ne doit jamais être NULL. Est-il de la magie SQL truc que je peux utiliser pour la force de cette colonne pour être NOT NULL
.
Notez que, si je supprime l' CAST()
autour de la CASE
, la colonne est réglée correctement en NOT NULL
, mais alors le type de la colonne est définie à l' INT
, ce qui n'est pas ce que je veux. Je veux qu'il soit BIT
. :-)