这样的sql表值函数能用吗? 10
SELECTdbo.SAFE_EMP.姓名FROMdbo.f_split(dbo.safe_wxy.查隐患人,'|')ASf_split_1LEFTOUTERJOINdb...
SELECT dbo.SAFE_EMP.姓名FROM dbo.f_split(dbo.safe_wxy.查隐患人, '|') AS f_split_1 LEFT OUTER JOIN dbo.SAFE_EMP ON f_split_1.col = dbo.SAFE_EMP.EMPNUMBER
以下为表值函数:
ALTER function [dbo].[f_split](@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin
while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c),'') end insert @t(col) values (@c) return end 展开
以下为表值函数:
ALTER function [dbo].[f_split](@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin
while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c),'') end insert @t(col) values (@c) return end 展开
2个回答
2014-01-14
展开全部
你这种写法。 可能 SQL Server 要抱错了。
因为你的 表值函数的 参数, 是另外一个表的 某一列。
也就是 safe_wxy 表的 查隐患人 这一列。
而你的 From 表里面, 有没有 safe_wxy 表
因为你的 表值函数的 参数, 是另外一个表的 某一列。
也就是 safe_wxy 表的 查隐患人 这一列。
而你的 From 表里面, 有没有 safe_wxy 表
追问
哈哈,就是报错,我就是想实现这种把另一个表的某个字段作为参数传递给那个表值函数,要怎么实现呢?
追答
不知道修改成这样, 还抱错不抱错了。
SELECT
dbo.SAFE_EMP.姓名
FROM
dbo.safe_wxy
cross apply dbo.f_split(dbo.safe_wxy.查隐患人, '|') AS f_split_1
LEFT OUTER JOIN dbo.SAFE_EMP
ON f_split_1.col = dbo.SAFE_EMP.EMPNUMBER
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询