ALTER FUNCTION [dbo].[FSmapping] (
@runID as bigInt,
@TypMap as char(1)
)
RETURNS TABLE
AS
RETURN
IF (@TypMap ='C')
BEGIN
SELECT b.[A/C],g.accountNumber, b.[Process], g.[endingBalanceLC], g.beginningBalanceLC
FROM table1 g
LEFT JOIN table2 b ON b.[Acc2]=g.Account_Synt
where RunID = @runID
END
我试图在sql中实现一个表函数。基本上应该还有3个 IF
唯一要切换的是表2,从基于输入的表2-4开始。错误是 IF
语句,我知道缺少了一些东西,我很难用table作为返回值实现某种开关函数。select在没有if语法的情况下可以完美地工作,它还表示if中的两个变量有错误
必须声明标量变量runid和typmap
2条答案
按热度按时间rjjhvcjd1#
您需要将查询更改为多语句表值函数,以便函数必须如下所示:
zujrkrfu2#
如果typmap没有返回c,函数将返回什么?
我想你需要“别的”。