我有一个表,其中包含允许 null 或空值的 varchar 列。
我正在编写一个存储过程,其中包含一个可以分配给空值或常规字符串(非空)的变量
它的定义如下:
declare @myvar varchar(50)
现在我正在尝试编写一个查询,该查询返回列等于此变量或者为空或 null 的行。到目前为止,我认为这会起作用:
select * from mytable where mycolumn =@myvar or mycolumn =''
但是,如果列为空且变量为空,则不会返回任何值。
我知道我可以做这样的事情:
select * from mytable where (mycolumn = @myvar and mycolum is not null) or mycolumn is null or mycolumn =''
有更好的方法吗?
PS:我不想做 ANSI_NULLS OFF
Thanks
如果希望列与参数完全匹配(包括空值)
DECLARE @myVariable varchar(10)
SELECT *
FROM mytable
WHERE ((@myVariable IS NULL AND myColumn IS NULL) OR myColumn = @myVariable)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)