2011-07-30 116 views
0

我已经逗号分隔字符串TSQL打破了逗号分隔字符串,然后循环

a=1,2,3,4 

现在我想通过它在TSQL在SQL中使用1,2,3等查询打破这个字符串,然后循环Server 2008的

set @sql = @sql + ' and (ClassicStation.int_WheatherTypeId = a[i]) AND (ClassicStation.int_MeasurementId IN (1,2)) or' 

回答

0

在您的例子,它看起来像你对我可以做这个:

set @sql = @sql + 'and (ClassicStation.int_WheatherTypeId in ('[email protected]+')) 
AND (ClassicStation.int_MeasurementId IN (1,2))' 

否则,你可以拆分与位于任何地方或 这样

declare @a varchar(max) 
set @a ='1,2,3,4' + ',' 

;with csv (col, pos) as 
(
select left(@a, charindex(',', @a) -1),charindex(',', @a) 
union all 
select substring(@a, pos +1, charindex(',', @a, pos +1) - pos-1), 
charindex(',',@a, pos+1) from csv 
where pos < len(@a) 
) 
select * from csv 
分割函数的字符串