我知道SQL Server没有布尔数据类型,最好的选择是使用BIT数据类型。SQL Server布尔运算符
我的问题是什么布尔表达式评估。例如,如果我有声明
expr1 AND expr2
,如果expr1的是真实的,表达式2是假的,他们做内部评估与值1和0的位?然后AND运算符检查BIT?
我觉得这是不是这样的,因为那么下面应该工作:
select 1 where 1 and 0
因此,没有SQL服务器内部有一个布尔数据类型?
以下工作
select 1 where 1 = 0
select 1 where 1 = 0 and 0 = 0
但这
select 1 where 1 and 0
报告
消息4145,15级,状态1,行 在指定的非布尔类型的表达式在'和'附近预期条件的上下文。
这意味着内部sql服务器将表达式视为布尔值,但为什么不能访问该数据类型。
@米奇小麦,我不明白 – alfoks
我没有使用按位。你不明白我的问题。 – alfoks
既然你不能*存储*表达式评估的结果,也不能提供一个值来代替正在评估的值,那有什么意义呢? –