Impliquent peu avec constante à 1 ou 0 dans SQL Server
Est-il possible d'exprimer 1 ou 0 comme un peu lorsqu'il est utilisé comme valeur d'un champ dans une instruction select?
par exemple
Dans ce cas, l'énoncé (qui fait partie d'une instruction select) ICourseBased est de type int.
case
when FC.CourseId is not null then 1
else 0
end
as IsCoursedBased
Pour qu'il soit de type un peu d'avoir à jeter les deux valeurs.
case
when FC.CourseId is not null then cast(1 as bit)
else cast(0 as bit)
end
as IsCoursedBased
Est-il à court de main d'exprimer les valeurs de bits type sans avoir à lancer à chaque fois?
(Je suis à l'aide de MS SQL Server 2005)
Vous devez vous connecter pour publier un commentaire.
Le CASTING spec est le "CAST (expression en tant QUE type)". Le CAS est un expression dans ce contexte.
Si vous avez plusieurs de ces expressions, je voudrais déclarer peu vars @vrai et @faux et de les utiliser. Ou utiliser des fonctions définies par l'utilisateur si tu le voulais vraiment...
Vous pourriez ajouter le deuxième fragment comme un champ de définition pour ICourseBased dans une vue.
Non, mais tu pourrais l'ensemble de l'expression plutôt que de les sous-composantes de l'expression. En fait, que, probablement, en fait moins lisible dans ce cas.
Un peu plus condensé que gbn est:
En supposant
CourseId
est non nulleCOALESCE
est comme unISNULL()
, mais renvoie la première valeur non Nulle.Un Non-Zéro
CourseId
permettra d'obtenir le type de fonte à 1, alors qu'un nulCourseId
sera la cause de FUSIONNER pour retourner à la valeur suivante, 0Si vous voulez la colonne est PEU et PAS NULL, vous devez mettre ISNULL avant la FONTE.
Malheureusement, non. Vous aurez à jeter chaque valeur individuellement.
L'expression à utiliser à l'intérieur de SÉLECTIONNER pourrait être
case when ... else ... end
, on a encore de jeter1
et0
de type BIT.Profiter de cette 🙂
Sans cast chaque valeur individuellement.