在函数内部时,关键字“if”附近的语法不正确,但在函数内部时没有错误

时间:2014-05-24 22:28:22

标签: sql sql-server sql-server-2008 sql-function

我在我的函数中遇到了一个声明的问题,但是,当我在一个函数中使用它时,它完全正常,我不知道为什么......这是有问题的声明。

RETURNS TABLE 
AS
RETURN
if (@PreAQ = 0)
begin
    select * from [MyTable]
        where ParentSysID = @ParentSysID
        and (
        CodeID like 'AD -%'
        or CodeID like 'CP -%' 
        or CodeID like 'DB%' 
        or CodeID like 'MC%' 
        or CodeID like 'SD -%' 
        or CodeID like 'VA%' 
        or CodeID like 'WD -%'
        )                   
end

我有多个if语句,与应用更多过滤器的语句相同。

这是完整的错误

  

消息156,级别15,状态1,过程WT_FN_GET_MyTable_By_ParentSysID,第11行   关键字附近的语法不正确'如果'。

我正在使用SQL Server 2008R2

1 个答案:

答案 0 :(得分:1)

您不能在inline (single-statement)函数中拥有流控制逻辑(if语句)。看一下如何声明multi-statement function