我正在尝试创建一个 sql server 查询选择。我有一个参数可以为空或不为空。当@value 为空时,我想返回所有具有空值的 mycolumns。如果值不为空,我想返回具有该值的 mycolumns。
如何最好地处理这个问题,我试过:
SELECT name FROM mytable
WHERE coalesce( @value,mycolumn)=mycolumn
我感觉它在于对空值的处理。我该如何解决?
我正在尝试创建一个 sql server 查询选择。我有一个参数可以为空或不为空。当@value 为空时,我想返回所有具有空值的 mycolumns。如果值不为空,我想返回具有该值的 mycolumns。
如何最好地处理这个问题,我试过:
SELECT name FROM mytable
WHERE coalesce( @value,mycolumn)=mycolumn
我感觉它在于对空值的处理。我该如何解决?
SELECT T.name
FROM dbo.mytable T
WHERE
EXISTS (
SELECT @value INTERSECT SELECT T.mycolumn
)
;
where myColumn = @value or
(myColumn is null and @value is null)
第一种情况。当你传递一个城市名称时..
DECLARE @SearchType varchar(80);
SET @SearchType = 'Alamo';
Select * From Homes
where City = @SearchType OR Coalesce(@SearchType,'') = ''
第二种情况。城市为空或为空。
SET @SearchType = '';
在第一种情况下,您将按城市名称获得结果。在第二种情况下,您将获得所有结果。
尝试:
SELECT name FROM mytable where myColumn = @value or @value is null