SQL变量if语句

SQL变量if语句,sql,sql-server,Sql,Sql Server,我有一个导致以下错误的问题 declare @transDate datetime = GETDATE(); declare @main_work_center as varchar(50) = 'PMOM'; declare @team as varchar(1) = ''; declare @full_work_center as varchar(50); IF(@team = '' OR @team IS NULL) then @full_work_center = @main_w

我有一个导致以下错误的问题

declare @transDate datetime = GETDATE();
declare @main_work_center as varchar(50) = 'PMOM';
declare @team as varchar(1) = '';
declare @full_work_center as varchar(50);
IF(@team = '' OR @team IS NULL) then
    @full_work_center = @main_work_center;
else
    @full_work_center = @main_work_center + @team;
end if

这就是错误:Msg 156,级别15,状态1,第5行关键字“then”附近的语法不正确。

您的代码中有多个语法错误,这只是第一个

  • 如果
  • if
    /
    else
  • 结束后没有
    if
  • 为了清晰起见,我喜欢用
    开始
    结束
    将代码包装在
    if
    /
    else
    的两个块中,就像其他语言中的花括号一样

    完全更正的代码:

    declare @transDate datetime = GETDATE();
    declare @main_work_center as varchar(50) = 'PMOM';
    declare @team as varchar(1) = '';
    declare @full_work_center as varchar(50);
    IF(@team = '' OR @team IS NULL) 
    begin
        set @full_work_center = @main_work_center;
    end
    else
    begin
        set @full_work_center = @main_work_center + @team;
    end;
    

    代码中有多个语法错误,这只是第一个

  • 如果
  • if
    /
    else
  • 结束后没有
    if
  • 为了清晰起见,我喜欢用
    开始
    结束
    将代码包装在
    if
    /
    else
    的两个块中,就像其他语言中的花括号一样

    完全更正的代码:

    declare @transDate datetime = GETDATE();
    declare @main_work_center as varchar(50) = 'PMOM';
    declare @team as varchar(1) = '';
    declare @full_work_center as varchar(50);
    IF(@team = '' OR @team IS NULL) 
    begin
        set @full_work_center = @main_work_center;
    end
    else
    begin
        set @full_work_center = @main_work_center + @team;
    end;
    

    如果
    ,则在SQL Server中不使用
    之后的
    。错误消息似乎很清楚。
    然后
    之后不在SQL Server中使用,如果
    。错误信息似乎很清楚。