我需要检查一行是否为零。对于空值,我通常使用isnull(),但我的行不会为空。如果有这样的命令,我会用这样的:sql是否有命令来检查一行是否为零?
select * from maintable where column1 = iszero(@param,column1)
我需要检查一行是否为零。对于空值,我通常使用isnull(),但我的行不会为空。如果有这样的命令,我会用这样的:sql是否有命令来检查一行是否为零?
select * from maintable where column1 = iszero(@param,column1)
假设你寻找的东西以同样的方式工作,因为IsNull()
你可以定义自己的函数用法
select
Returns5 = dbo.Iszero(5, 10),
Returns10 = dbo.Iszero(0, 10)
的
create function IsZero(@value int, @default int)
returns int
as
begin
if (@value <> 0)
return @value
return @default
end
例或在你的情况下
select * from maintable where column1 = IsZero(@param,column1)
SELECT *
FROM maintable
WHERE column1 = CASE @param
WHEN 0 THEN column1
ELSE @param
END
这会给你哪里column1
等于@param
变量在maintable
记录。如果@param
变量为0,则它将返回maintable
中的所有记录。
试试这个:
select *
from maintable
where column1 = @param or @param = 0
我很困惑。你问如何检查包含整数的列是否包含0值? – 2012-08-08 15:56:36
你是什么意思“IsZero”?为什么你只是不使用'select * from maintable where column1 = 0?' – David 2012-08-08 15:57:14
也许这是有帮助的:http://stackoverflow.com/q/580364/405117 – Vikram 2012-08-08 15:59:03