读书人

一个SQL自定义函数的有关问题

发布时间: 2012-01-21 21:31:43 作者: rapoo

一个SQL自定义函数的问题~
ALTER FUNCTION dbo.getIsOnline
()
RETURNS nvarchar(100) AS
begin
declare @IsOnLine as nvarchar(100)
declare @OnLineTime as int
set @OnLineTime = 0
set @IsOnLine = ' '

select @OnLineTime = OnLineTime from List
if(@OnLineTime < 60)
begin
set @IsOnLine = '是 '
end
if(@OnLineTime > = 60)
begin
set @IsOnLine = '否 '
end

return @IsOnLine
end
上面是我自己写的函数
select @OnLineTime = OnLineTime from List
中的OnLineTime是一个整数字段它是由datediff来获得的list是视图

在执行的时候发现IF语句没有其效果所有的IsOnLine的值都是 "否 "
为什么会这样,急死人了。大家帮下忙好么

[解决办法]
ALTER FUNCTION dbo.getIsOnline
(@id varchar(100))
RETURNS nvarchar(100) AS
begin
declare @IsOnLine as nvarchar(100)
declare @OnLineTime as int
set @OnLineTime = 0
set @IsOnLine = ' '

select @OnLineTime = OnLineTime from List where id = @id --- 在这个地方加一个条件就好了
if(@OnLineTime < 60)
begin
set @IsOnLine = '是 '
end
if(@OnLineTime > = 60)
begin
set @IsOnLine = '否 '
end

return @IsOnLine
end
[解决办法]
你的list中肯定很我,select @OnLineTime = OnLineTime from List句敢后一返回@OnLineTime,也就是@OnLineTime得到是最后一的值

读书人网 >SQL Server

热点推荐