DECLARE@sCHAR(200) Declare@wherevarchar(200) Declare@colchar(10) Declare@sqlvarchar(200) Set@col='col013' set@where='' set@sql='' SET@s='14 11' Declare@strvarchar(100) Declare my_cur Cursor ForSELECT','+ a +',' k FROM dbo.Split(@s,'') OPEN my_cur FETCHNEXTFROM my_cur into@str WHILE@@FETCH_STATUS=0 Begin -- SELECT col001,col013 FROM d_table_2 where ','+col013+',' like '%'+@str+'%' Set@where=@where+ dbo.trim(@col)+' like '+'''%'+@str+'%'''+' and ' --Set @where = 'tet' FETCHNEXTFROM my_cur into@str end set@where=left(@where,len(@where) -4) --select @where set@sql=N'SELECT col001,col013 FROM d_table_2 where '+@where --select @sql exec(@sql) CLOSE my_cur DEALLOCATE my_cur -------------------- 不用遊標方式 Declare@fieldsVARCHAR(1024) select@fields=dbo.trim(isnull(@fields,''))+','+ k from ((selecttop10 id as k from part)) as a select@fields CREATEFunction Split(@Sqlvarchar(8000),@Splitsvarchar(10)) --此函數是別人寫的 returns@tempTable (a varchar(100)) As Begin Declare@iInt Set@Sql=RTrim(LTrim(@Sql)) Set@i=CharIndex(@Splits,@Sql) While@i>=1 Begin Insert@tempValues(Left(@Sql,@i-1)) Set@Sql=SubString(@Sql,@i+1,Len(@Sql)-@i) Set@i=CharIndex(@Splits,@Sql) End