在select语句中用作字段值时,可以将1或0表示为一位吗?
例如
在这种情况下,语句(属于select语句)ICourseBased的类型为int。
case when FC.CourseId is not null then 1 else 0 end as IsCoursedBased
为了使它成为位类型,我必须转换两个值。
case when FC.CourseId is not null then cast(1 as bit) else cast(0 as bit) end as IsCoursedBased
是否有一种简便的方法可以将值表示为位类型而不必每次都强制转换?
(我正在使用MS SQL Server 2005)
cast ( case when FC.CourseId is not null then 1 else 0 end as bit)
CAST规范为“ CAST(表达式AS类型)”。在这种情况下,CASE是一个 表达式 。
如果您有多个这样的表达式,我将声明vars @true和@false并使用它们。或者如果您真的想要使用UDF …
DECLARE @True bit, @False bit; SELECT @True = 1, @False = 0; --can be combined with declare in SQL 2008 SELECT case when FC.CourseId is not null then @True ELSE @False END AS ...