gpt4 book ai didi

sql - SQL“ANSI_NULLS OFF”比较

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

我想检查@a是否与“ ansi_nulls off”中的@b不同:

set ansi_nulls off
declare @a int = 1;
declare @b int = null;
select case when @a<>@b then 'diff' else 'equal' end '@a=@b ?' --RETURNS 'diff'


但不使用“ set ansi_nulls off”。我提出了以下内容,但很冗长:

select
case
when @a is null and @b is not null then 'diff' -- null x
when @a is not null and @b is null then 'diff' -- x null
when @a is null and @b is null then 'equal' -- null null
when @a <> @b then 'diff' -- x x
else 'equal'
end


有更短的方法吗?
谢谢,
内斯特

最佳答案

坚持自己的逻辑,而不使用ISNULL或COALESCE,请尝试以下操作:

select
case
when @a=@b then 'equal' -- x x
when @a is null and @b is null then 'equal' -- null null
else 'diff'
end


但这更好:

select
case
when @a=@b OR COALESCE(@a,@b) is null then 'equal'
else 'diff'
end

关于sql - SQL“ANSI_NULLS OFF”比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1500300/

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