0

行がゼロかどうかを確認する必要があります。null の場合、通常は isnull() を使用しますが、行が null になることはありません。そのようなコマンドがあれば、次のように使用します。

select * from maintable where column1 = iszero(@param,column1)
4

3 に答える 3

1

IsNull()独自の関数を定義できるのと同じように機能するものを探していると仮定します

create function IsZero(@value int, @default int)
    returns int
as
begin

    if (@value <> 0)
        return @value

    return @default
end

使用例

select 
    Returns5 = dbo.Iszero(5, 10),
    Returns10 = dbo.Iszero(0, 10)

またはあなたの場合

select * from maintable where column1 = IsZero(@param,column1)
于 2012-08-08T16:08:12.353 に答える
0

これを試して:

select *
from maintable
where column1 = @param or @param = 0 
于 2012-08-08T16:07:07.650 に答える
0
SELECT * 
FROM   maintable 
WHERE  column1 = CASE @param 
                     WHEN 0 THEN column1 
                     ELSE @param 
                 END

これにより、 が変数maintablecolumn1等しい のレコードが得られます。変数が 0@paramの場合、内のすべてのレコードが返されます。@parammaintable

于 2012-08-08T16:00:13.183 に答える