当前位置: 首页 > 面试题库 >

在SQL Server中隐含常数1或0的位

厉成仁
2023-03-14
问题内容

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


 类似资料:
  • 出于某种原因,这段代码给出了标题中给出的错误,然后是大量异常列表。然后控制台会加载,但不会加载任何数据,您必须将鼠标悬停在控制台的每个部分上才能让它显示出来。有什么帮助吗? 编辑:以下是例外:

  • 问题内容: 为什么在Python中等于?它不应该像那样抛出异常吗? 问题答案: Wikipedia对历史进行了有趣的报道,并对以下内容的价值有不同的看法: 至少从19世纪初期开始,辩论一直在进行。当时,大多数数学家都同意,直到1821年,柯西(Cauchy)以及诸如未定义形式的表格之类的表达式才被列出。在1830年代,利比里(Libri)发表了令人信服的论点,莫比乌斯(Möbius)站在他身边。

  • 使用面向对象的原理用java编写一个程序来检查一个数字是否为素数。如果为素数,则打印1如果为假,则打印0如果给定值小于或等于1,则打印-1。从用户那里获取值? 当我给出一位数的值时,它起作用,但当我给出两位数的值时,它不起作用

  • 我有一个像这样的麻木数组: 我不明白: : 因为我认为两者应该给出完全相同的结果?我的意思是后面的应该只代表第一个元素,对吗?那么,两者到底有什么区别?

  • 本文向大家介绍浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释,包括了浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释的使用技巧和注意事项,需要的朋友参考一下 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明:

  • 问题内容: 我正在使用SQLite数据库,并且已成功返回游标,但我想知道游标是否引用以0开头的列(如数组或仅是1)? 问题答案: Android中SQLite数据库中的游标引用了从0开始的列。