sql中将分隔字符串转为临时表的方法

问题: 要求将 一字符串 0,1,2,3,4,5 ;将,分隔后的每一内容转为一行记录到数据库表中
declare  @table_串转数组 table( adapt_object int default 0)
declare @tmp_str   varchar(100)
declare @tmp_index int
select  @tmp_index = 1
select  @tmp_str = '0,1,12,03,4,5,a,,,'   --赋测试值
while (@tmp_index > 0)
begin
   select @tmp_index = CHARINDEX(',', @tmp_str)  --,为分隔符
   if (@tmp_index > 0)  
   if (ISNUMERIC(substring(@tmp_str, 1, @tmp_index - 1)) = 1) --只把是分隔转换后是数字类型的放入到临时表中
   insert into @table_串转数组(adapt_object)  
   select convert(int, substring(@tmp_str, 1, @tmp_index - 1))
   select  @tmp_str  = substring(@tmp_str, @tmp_index + 1, 100) 
end
select * from @table_串转数组

posted @ 2007-12-20 15:11  我想去长安  阅读(777)  评论(1编辑  收藏  举报