[英]sql - using parameters in a in statement
我正在嘗試在SQL Server Management Studio中運行一個簡單的腳本。
Declare @total varchar (max)
set @total = 1
Declare @total2 varchar (max)
set @total2 = '1,4'
if @total in (@total2)
print 'Success'
由於某種原因,我無法使這個簡單的腳本起作用。 盡管“如果在('1,2')中有1個”,它將打印“成功”,將可以正常工作。任何幫助[將不勝感激。
IN
對集合起作用,而不對字符串起作用。 您可以聲明一個表變量並執行INSERT
語句:
Declare @total varchar (max)
set @total = 1
Declare @total2 TABLE varchar (max)
(
total int
)
INSERT INTO @total2 VALUES (1)
INSERT INTO @total2 VALUES (4)
if @total in (SELECT total FROM @total2)
print 'Success'
或使用CHARINDEX
類的字符串函數,但隨后必須考慮部分匹配等。
您可以將以逗號分隔的字符串轉換為表格,但仍需要使用循環逐一插入值。
您需要使用Dynamic SQL
因為您的@total
包含varchar而不是數字
Declare @total varchar (max)
set @total = 1
Declare @total2 varchar (max)
set @total2 = '1,4'
exec ('if '+@total+' in ('+@total2+') print ''Success'' ' )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.