我知道 SQL Server 没有布尔数据类型,最好的选择是使用 BIT 数据类型。
我的问题是布尔表达式评估什么。例如,如果我有声明
expr1 AND expr2
如果 expr1 为真而 expr2 为假,它们是否在内部评估为值为 1 和 0 的 BIT?然后 AND 运算符检查 BIT?
我认为情况并非如此,因为这样应该可以:
select 1 where 1 and 0
那么sql server内部有布尔数据类型吗?
以下作品
select 1 where 1 = 0
select 1 where 1 = 0 and 0 = 0
但是这个
select 1 where 1 and 0
报告
消息 4145,级别 15,状态 1,第 1 行 在预期条件的上下文中指定的非布尔类型表达式,靠近“和”。
这意味着内部 sql server 将表达式作为布尔值处理,但为什么不能访问该数据类型。