我正在尝试在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英寸('1,2')”它将打印“成功”任何帮助[将非常感谢。
答案 0 :(得分:0)
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
这样的字符串函数,但是你必须考虑部分匹配等。
您可以将逗号分隔的字符串转换为表格,但您仍需要使用循环逐个插入值。
答案 1 :(得分:0)
您需要使用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'' ' )