我需要檢查一行是否爲零。對於空值,我通常使用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