Sql 关键字';如果';当在函数内部时,但不在函数中时没有错误

Sql 关键字';如果';当在函数内部时,但不在函数中时没有错误,sql,sql-server,sql-server-2008,sql-function,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 -%'

我在函数中遇到了一个语句的问题,但是,当我在函数中不使用它时,它工作得非常好,我不知道为什么…这是有问题的语句

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语句,与应用更多过滤器的语句相同

下面是全部错误

Msg 156,级别15,状态1,程序WT\U FN\U GET\U MyTable\U By\U ParentSysID,第11行 关键字“if”附近的语法不正确


我使用的是SQL Server 2008R2,函数中不能有流控制逻辑(
if
语句)。看看如何申报。

@KenWhite,你说得对。我进行了编辑,以显示完整错误以及我使用的版本。行错误为“如果(@PreAQ=0)”