请教一个SQL自定义函数的问题(在线等待)
我想写一个函数,就是返回一个Table,其中要用到IF语句,出现问题,总是告诉我BEGIN处出错,和"标量值的函数中的 RETURN 语句必须含有参数"。请问是什么意思,另外我写了两个正确的但是不同内容,一个是返回VarChar(32)的其中用到了If...Else没有问题,另外一个是返回table的也没有问题,但是把它们合并后就不行了,现将3个SQL一并贴出请大家看看!
1.正确使用IF...ELSE的
ALTER function GetAllNextLevelDepID1 (@DepId varchar(32),@iType int)
RETURNS varchar(32)
as
begin
if @iType=0
RETURN
'0'
else
if @iType=1
return '1'
return '2'
end
2.正确使用返回Table的
ALTER function GetAllNextLevelDepID (@DepId varchar(32),@iType int)
RETURNS TABLE
as
RETURN
SELECT DISTINCT Dep.ID
FROM Dep
INNER JOIN Dep d ON (Dep.PathID LIKE d.PathID +'%' AND d.PathID<>Dep.PathID) OR d.ID=Dep.ID
WHERE d.ID=@DepId
3.错误的且同时使用IF...ELSE也是用返回Table
create function GetAllNextLevelDepID2 (@DepId varchar(32),@iType int)
RETURNS TABLE
as
begin
if @iType=0
begin
RETURN
SELECT DISTINCT Dep.ID
FROM Dep
INNER JOIN Dep d ON (Dep.PathID LIKE d.PathID +'%' AND d.PathID<>Dep.PathID) OR d.ID=Dep.ID
WHERE d.ID=@DepId
end
RETURN
SELECT DISTINCT Dep.ID
FROM Dep
INNER JOIN Dep d ON (Dep.PathID LIKE d.PathID +'%' AND d.PathID<>Dep.PathID)
WHERE d.ID=@DepId
end
请大家帮忙看看,在线等待
1.正确使用IF...ELSE的
ALTER function GetAllNextLevelDepID1 (@DepId varchar(32),@iType int)
RETURNS varchar(32)
as
begin
if @iType=0
RETURN
'0'
else
if @iType=1
return '1'
return '2'
end
2.正确使用返回Table的
ALTER function GetAllNextLevelDepID (@DepId varchar(32),@iType int)
RETURNS TABLE
as
RETURN
SELECT DISTINCT Dep.ID
FROM Dep
INNER JOIN Dep d ON (Dep.PathID LIKE d.PathID +'%' AND d.PathID<>Dep.PathID) OR d.ID=Dep.ID
WHERE d.ID=@DepId
3.错误的且同时使用IF...ELSE也是用返回Table
create function GetAllNextLevelDepID2 (@DepId varchar(32),@iType int)
RETURNS TABLE
as
begin
if @iType=0
begin
RETURN
SELECT DISTINCT Dep.ID
FROM Dep
INNER JOIN Dep d ON (Dep.PathID LIKE d.PathID +'%' AND d.PathID<>Dep.PathID) OR d.ID=Dep.ID
WHERE d.ID=@DepId
end
RETURN
SELECT DISTINCT Dep.ID
FROM Dep
INNER JOIN Dep d ON (Dep.PathID LIKE d.PathID +'%' AND d.PathID<>Dep.PathID)
WHERE d.ID=@DepId
end
请大家帮忙看看,在线等待
...全文
相关推荐
sql自定义函数 sql自定义函数
SQL(Structured Query Language)自定义函数是数据库管理系统中一个强大的特性,它允许用户根据特定需求创建自己的函数,以便在查询和处理数据时使用。
SQL Function 自定义函数详解
### 构成SQL Server中的自定义函数主要分为三类:1. **标量函数**:接受一个或多个输入,返回单一值。比如`LEFT`和`GETDATE`。2.
sql server 自定义函数
### SQL Server 用户自定义函数详解#### 一、概述在SQL Server中,用户自定义函数(User-Defined Functions, UDFs)允许开发者创建能够执行特定任务并返回结果的自定义逻辑
SQL自定义函数的好处
SQL自定义函数可以分为三种类型:标量型函数、内联表值型函数和多声明表值型函数。标量型函数是指返回一个确定类型的标量值的函数,例如返回一个整数或字符串等。
MySQL创建自定义函数有关问题
然而,在创建自定义函数时,可能会遇到一些问题,比如“此函数在声明中没有DETERMINISTIC、NO SQL或READS SQL DATA,并且二进制日志已启用”的错误。


疑难问题
