gpt4 book ai didi

where 子句中的 SQL Server CASE 不适用于 NULL 值

转载 作者:行者123 更新时间:2023-12-01 07:15:44 26 4
gpt4 key购买 nike

我要的是什么时候@AddressCode为空然后简单地执行

SELECT
*
FROM
Addresses
WHERE
1= 1

如果@AddressCode 不为 NULL 则执行
SELECT
*
FROM
Addresses
WHERE
1= 1 AND @AddressCode=Addresses.AddressCode

我怎样才能做到这一点......我尝试了下面的查询,但它不适用于 Address with NULL值或当 @AddressCode is NULL ....(地址只是一个虚构的表名)
Declare @AddressCode varchar(20)
Set @AddressCode=NULL

SELECT
*
FROM
Addresses
WHERE
1= 1
AND
CASE @AddressCode
WHEN NULL
THEN Addresses.AddressCode
ELSE @AddressCode
END =Addresses.AddressCode

我很努力但没能做到……我知道我可以编写 IF 语句并编写单独的 select 语句,但不想这样做,因为我有很多这样的标准,例如 @AddressCode :(

最佳答案

SELECT *
FROM
Addresses
WHERE
(@AddressCode IS NULL OR Addresses.AddressCode = @AddressCode)

关于where 子句中的 SQL Server CASE 不适用于 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244582/

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