gpt4 book ai didi

tsql - 如何将比较结果存储到变量中

转载 作者:行者123 更新时间:2023-12-04 01:56:56 25 4
gpt4 key购买 nike

我想打印一个简单的语句
打印(1=1),我希望结果是 TRUE 或 1 但 sql server 告诉我:
'=' 附近的语法不正确。
这是为什么?

类似的语句也会发生同样的情况

declare @test bit
set @test = (1=1)

总之,我如何在不使用 IF 语句的情况下“看到”比较返回的内容

更新:我问的原因是因为我正在尝试调试以下语句的原因
declare @AgingAmount smallint
set @AgingAmount = 500
select Amount, datediff(day,Batch.SubmitDate,getdate()) as Aging from myreporrt
where datediff(day,Batch.SubmitDate,getdate()) > @AgingAmount

即使老化为 300 也将返回所有行
所以我想测试 datediff(day,datesubmited,getdate()) > 500 是否返回 true 或 false 但找不到如何显示此比较结果的方法。

最佳答案

虽然 SQL Server 有 boolean 的概念类型,它理解解析为 boolean 的表达式在 IFWHERE子句,不支持声明 boolean变量或参数。 bit数据类型无法存储 boolean 的结果直接表达,即使它看起来像一个可疑的。

距离您最近的 boolean数据类型是这样的:

-- Store the result of a boolean test.
declare @result bit
select @result = case when <boolean expression> then 1 else 0 end

-- Make use of the above result somewhere else.
if @result = 1
...
else
...

更令人困惑的是,SQL Server Management Studio 处理 bit喜欢 boolean显示结果和 ADO.NET 映射时 bitSystem.Boolean来回传递数据时。

更新:要回答您的最新问题,请使用 case when ... then 1 else 0 end select 中的语法陈述。

关于tsql - 如何将比较结果存储到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2127964/

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