使用SQL函数查找传递的值是否大于零

时间:2016-02-11 08:15:25

标签: sql sql-server

我写了一个用户定义的函数,它将price作为输入参数,如果输入大于零则返回。 https://stackoverflow.com/editing-help 我尝试过如下。

create function fn_GreateCheck(@value int)
returns varchar(20)
as
begin    
select  case
when @value >0 then 'Greater'
when @value <0 then 'Lesser'
end

return @value     
end

请帮我解决这个问题

感谢。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

create function dbo.fn_GreateCheck(@value int)
returns varchar(20)
as
begin    
    declare @ret VARCHAR(20) = (case
        when @value >0 then 'Greater'
        when @value <0 then 'Lesser'
        else 'Zero'
    end)

    return @ret
end
GO

select dbo.fn_GreateCheck (1000) --> Greater
select dbo.fn_GreateCheck (-10)  --> Lesser
select dbo.fn_GreateCheck (0)    --> Zero
select dbo.fn_GreateCheck (NULL) --> Zero
GO

用户定义的函数无法将数据返回给客户端,因此您必须在变量中捕获结果并返回值。要返回结果集,您必须定义Table-value user defined function