Sql中字符串的循环截取(用循环实现输入键串能输出值串)

USE DB
GO
CREATE TABLE tblCategory (Code INT, CategoryName VARCHAR(20),LastUpdated date) 
INSERT tblCategory 
VALUES(1,'Cloths','01.01.2007'),(2,'Wear','01.01.2006'),(3,'Wears','03.10.2005'),(4,'Computers','03.04.2007') ,(5,'Hardware&Software','01.02.2006'),(6,'Office equipment','03.10.2006')
 
Create PROC GetCategoryName 
@Codes VARCHAR(1000) 
AS 
BEGIN 
SET NOCOUNT ON; 
DECLARE @stra VARCHAR(1000),@strb VARCHAR(100) 
DECLARE @temp TABLE (code INT) 
SET @stra=@Codes+',' 
WHILE @stra LIKE '%,' 
BEGIN 
SET @strb=LEFT(@stra,PATINDEX('%,%',@stra)-1) 
SET @stra=RIGHT(@stra,(LEN(@stra)-LEN(@strb))-1) 
INSERT @temp 
select @strb 
END 
SELECT STUFF((SELECT ','+tblb.CategoryName FROM @temp tbla JOIN tblCategory tblb 
ON tbla.Code=tblb.Code FOR XML PATH('')),1,1,'') 
END 
 
EXEC dbo.GetCategoryName  '1,2,3'
posted @ 2013-04-16 13:59  毛丹  阅读(382)  评论(0编辑  收藏  举报