我希望的是,当
@AddressCode
为空时,直接执行。SELECT
*
FROM
Addresses
WHERE
1= 1
如果@AddressCode不为空,则执行
SELECT
*
FROM
Addresses
WHERE
1= 1 AND @AddressCode=Addresses.AddressCode
我该如何实现这个功能...我尝试了下面的查询语句,但是当Address中的值为NULL
或者@AddressCode is NULL
时无法运行...(Addresses只是一个虚构的表名)
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
),所以不想这样做 :(