这问题很简单 但是我不会 呜呜
CREATE FUNCTION GetJXCTJRuKu
(
@cpid int,
@tjrq datetime
)
RETURNS float
AS
BEGINdeclare @ruku floatselect @ruku=(select RuKuShuLiang,JinJia
from dbo.RuKuMingXi
where ShangHuChanPinID=@cpid and RuKuRiqi=@tjrq
)RETURN
(
select @ruku
)
end上面是我建函数的代码 代码很简单 但是 报错:消息 116,级别 16,状态 1,过程 GetJXCTJRuKu,第 17 行
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。我发现是因为查询语句 查询了2个字段的原因 (我建了个只查询1个字段却成功了) 还有就是 我这段代码 如果你在系统数据库master运行的话 他能运行成功 但是用自己的数据库的话 就不行了
CREATE FUNCTION GetJXCTJRuKu
(
@cpid int,
@tjrq datetime
)
RETURNS float
AS
BEGINdeclare @ruku floatselect @ruku=(select RuKuShuLiang,JinJia
from dbo.RuKuMingXi
where ShangHuChanPinID=@cpid and RuKuRiqi=@tjrq
)RETURN
(
select @ruku
)
end上面是我建函数的代码 代码很简单 但是 报错:消息 116,级别 16,状态 1,过程 GetJXCTJRuKu,第 17 行
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。我发现是因为查询语句 查询了2个字段的原因 (我建了个只查询1个字段却成功了) 还有就是 我这段代码 如果你在系统数据库master运行的话 他能运行成功 但是用自己的数据库的话 就不行了
返回一般值的就是你这种 returns float
返回表的 returns table return (select * from tb)
还有一种多语句的表值函数 returns @tb table(sdfdsfds) 最后
returns varchar(100)
begin
..
end