存储过程_把字符串转化为结果集

本章将讲解,Sybase下如何把含逗号字符串转化为结果集。

示例如下:

把含有逗号的字符串,拆开放入结果集。

--声明变量 @OLD 保存待处理 字符串  
DECLARE @OLD VARCHAR(100)
--把待处理字符串赋值与变量
SET @OLD ='1,2,9,12,106,1489,47863,987654,3211566,6,8' 

--创建临时表,保存转化后的数据    
  CREATE TABLE #TMPTABLE ( 
      NEW  INT  NULL
  ) 
--循环处理字符  
  WHILE(datalength(@OLD)>0) 
    BEGIN 
        IF(charindex(',', @OLD)>0)
            BEGIN
                --把逗号前第一个数字保存临时表
                INSERT INTO #TMPTABLE VALUES (convert(int, substring(@OLD, 1, charindex(',', @OLD) - 1)))
                --把剩余的继续走循环
                SET @OLD=substring(@OLD,charindex(',', @OLD) + 1,datalength(@OLD))
            END
        ELSE
            BEGIN
                INSERT INTO #TMPTABLE VALUES (convert(int,@OLD))
                --把@OLD赋值为空,结束循环
                SET @OLD=NULL
            END               
    END 
--查询临时表     
SELECT NEW FROM #TMPTABLE
--删除临时表
DROP TABLE #TMPTABLE

当用到临时表时,可以直接把临时表当做物理表一样使用。

over

原文地址:https://www.cnblogs.com/sky-/p/5604666.html