[英]Incorrect syntax near the keyword if
我有以下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
我在運行關鍵字時遇到錯誤,關鍵字附近的語法不正確。 我想要在字符串中顯示的是根據條件隱藏或顯示值的邏輯。請問有人在這里做錯了什么。
這是SQL小提琴
謝謝
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;
您需要使用一個CASE
表達式,它本質上是一個IF
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;
這是一個很好的閱讀:)
(Lamak和dbajtr的答案都不錯,但是出於多樣性的考慮,我正在編寫此答案)您可以按以下方式細分行:
DECLARE @ContractTerm int
DECLARE @Counter INT
Declare @FIELDSSingle varchar(max)
SET @Counter = 1
SET @ContractTerm = 2
SET @FIELDSSingle = '<td class="HeaderData"> Year ';
If(@ContractTerm = 2)
Begin
set @FIELDSSingle +=' This is a sample ';
End
set @FIELDSSingle +='</td>';
select @FIELDSSingle
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.