gpt4 book ai didi

sql - 程序-case语句错误

转载 作者:行者123 更新时间:2023-12-03 02:20:13 24 4
gpt4 key购买 nike

我有一个如下所示的存储过程:

SELECT @AdminApproved = CASE WHEN @AdminApprovalDate IS NULL
THEN 0
ELSE 1
END

据我了解 CASE 语句,@AdminApproved 永远不应该是 0 或 1 以外的任何值。它不可能是 NULL。但我却得到了 NULL!!!!任何人都可以帮助我吗?

最佳答案

您的示例代码有效

根据SQL Fiddle这有效。它可以设置为 0 或 1。因此,如果您使用的代码与您向我们展示的代码完全相同,则该变量不能为 null

declare @AdminApproved1 bit
declare @AdminApproved2 bit
select @AdminApproved1 = case when (null) is null then 0 else 1 end,
@AdminApproved2 = case when (getdate()) is null then 0 else 1 end

-- both have values
select @AdminApproved1, @AdminApproved2;

但变量仍然可以为null

因此,如果您的代码示例不完整,则 I can show you another example即使执行 select 语句后,两个上部变量也将为 null。我怀疑你的问题是相关的。

declare @AdminApproved1 bit
declare @AdminApproved2 bit
select @AdminApproved1 = CASE WHEN (null) IS NULL THEN 0 ELSE 1 END,
@AdminApproved2 = CASE WHEN (getdate()) IS NULL THEN 0 ELSE 1 END
from SomeTable
where 0 = 1 -- this query yields no results

-- both are NULL when
select @AdminApproved1, @AdminApproved2;

关于sql - 程序-case语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547289/

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