您的位置:首页 > 数据库

SqlServer中游标的使用

2010-04-29 15:55 267 查看
使用了一个游标,并分解一个字符串:

DECLARE @flag NVARCHAR(50),@i INT
DECLARE @r1 NVARCHAR(50),@r2 NVARCHAR(50),@assay NVARCHAR(50)
SET @flag='20100427181006'
SET @assay='' --使用游标
DECLARE getAssayValue CURSOR FOR
SELECT ASSAY FROM dbo.KH_SampleBarcode1 WHERE POSITIONBC NOT IN (SELECT BCNAME FROM dbo.KH_BarCode) AND FLAG=@flag
OPEN getAssayValue
FETCH NEXT FROM getAssayValue INTO @r1
WHILE @@FETCH_STATUS<>-1
BEGIN
IF @assay=''
SET @assay=@r1
ELSE
BEGIN
--以下对字符串做的分解,相当于一个Split方法
SET @i=CHARINDEX(';',@r1)
IF @i>0
BEGIN
WHILE @i>0
BEGIN
SET @r2=LEFT(@r1, @i-1)
IF CHARINDEX(@r2, @assay)<=0
SET @assay=@assay+';'+@r2
SET @r1=SUBSTRING(@r1, @i+1, LEN(@r1)-@i)
SET @i=CHARINDEX(';',@r1)
END
END
ELSE
IF CHARINDEX(@r1, @assay)<=0
SET @assay=@assay+';'+@r1
END
FETCH NEXT FROM getAssayValue INTO @r1
END CLOSE getAssayValue
DEALLOCATE getAssayValue
PRINT @assay
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: