因此,用户输入的格式为:2000,2001,2002
我需要为这3个策略号中的每一个运行一个查询。我不知道该怎么做。
这是我现在的代码。我正在考虑某种字符串操作然后使用循环,但我不知道该怎么做。有人可以帮帮我吗?
declare @sql1 varchar(1000)
declare @policy varchar(1000)
set @policy = '2000, 2001, 2002'
--THIS IS WHERE i NEED HELP???
set @policy = replace(@policy, ' ', '')
set @policy = '''' + replace(@policy, ',', ''',''') + ''''
print (@policy)
if @policy <> 'null'
set @sql1 =
(SELECT top 1
[MIL]
FROM
[DataManagement].[dbo].[lookuptable] where [policy] = @policy group by [MIL] )
exec (@sql1)
print(@sql1)
答案 0 :(得分:0)
选项:
真正取决于您对环境的需求。我使用选项2来拆分字符串,然后使用FOR XML PATH构建组合的单个查询并执行它。但对于某些环境,表值参数和循环方法肯定会更优越。