gpt4 book ai didi

t-sql - 1 和 0 在 T-SQL 中不被识别为 bool 常量

转载 作者:行者123 更新时间:2023-12-01 12:49:18 24 4
gpt4 key购买 nike

如果我尝试在 SQL Server 2005 中运行此查询:

SELECT 1 WHERE NOT ( 0 )

我收到此错误:

Msg 4145, Level 15, State 1, Line 1 An expression of non-boolean type specified in a context where a condition is expected, near ')'.

有时,在调试复杂的 WHERE 语句时,我会剪下片段并通过插入类似 1=1 的内容来测试特定场景。为真。我宁愿只使用 1TRUE但这在上述情况下不起作用。为什么无法评估NOT( 0 )作为 bool 表达式?

编辑:这确实工作正常,表明我不必添加列:

SELECT 1 WHERE NOT(1<>1)

最佳答案

0和1是整数。它们本身不是 bool 表达式,在 SQL 中,只有表达式可以具有 TRUE、FALSE 或 UNKNOWN 值。例如,“NOT 7.5”本身并不是一个 bool 表达式。实际上,您想说的是“NOT (7.5 <> 0)”因此,在您的示例中,您需要将值转换为表达式:

Select 1 Where Not ( 0 <> 0 )

至少在 T-SQL 中,没有可用于 TRUE 和 FALSE 的常量。即,无法查询:

Select 1 Where Not TRUE

关于t-sql - 1 和 0 在 T-SQL 中不被识别为 bool 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com