簡體   English   中英

sql-在in語句中使用參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM