关键字if附近的语法不正确

SP1*_*SP1 1 sql sql-server sql-server-2008

我有以下SQL

DECLARE @ContractTerm int  
Declare @FIELDSSingle varchar(max)    
SET @ContractTerm = 2

SET @FIELDSSingle += '<td class="HeaderData"> Year ' +If(@ContractTerm = 2)Begin+' This is a sample '+ End + ' </td>'

select @FIELDSSingle
Run Code Online (Sandbox Code Playgroud)

我收到错误关键字附近的语法不正确,如果我运行它.在字符串中我想要的是根据条件隐藏或显示值的逻辑.可以告诉我在这里做错了什么.

这是SQL小提琴

谢谢

Lam*_*mak 5

IF不是SQL Server中的表达式,您需要使用CASE:

DECLARE @ContractTerm int  
Declare @FIELDSSingle varchar(max)    
SET @ContractTerm = 2

SET @FIELDSSingle += '<td class="HeaderData"> Year ' +
                      CASE WHEN @ContractTerm = 2 THEN ' This is a sample ' ELSE '' End  + 
                      ' </td>';

select @FIELDSSingle;
Run Code Online (Sandbox Code Playgroud)