查询字符串
我有一个字符串1,2,3,4,5,6,7,8,55 
 我现在想用SELECT语句把字符串中的数字查询为1列显示。 
 查询结果,例如: 
 Result 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 55   
 这个SELECT语句应该怎么写?
------解决方案--------------------    /* 
 	功能:实现split功能的函数 
 */   
 create function dbo.fn_split  
 	( 
 		@inputstr varchar(8000),  
 		@seprator varchar(10) 
 	) 
 returns @temp table (a varchar(200)) 
 as    
 begin 
 	declare @i int   
 	set @inputstr = rtrim(ltrim(@inputstr)) 
 	set @i = charindex(@seprator, @inputstr)   
 	while @i > = 1 
 	begin 
 		insert @temp values(left(@inputstr, @i - 1))   
 		set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i) 
 		set @i = charindex(@seprator, @inputstr) 
 	end   
 	if @inputstr  <>   '\ ' 
 		insert @temp values(@inputstr)   
 	return  
 end 
 go   
 --调用   
 declare @s varchar(1000)   
 set @s= '1,2,3,4,5,6,7,8,55 '   
 select * from dbo.fn_split(@s, ', ')   
 drop function dbo.fn_split      
------解决方案--------------------declare @str as varchar(20) 
 set @str =  '1,2,3,4,5,6,7,8,55 '   
 declare @sql varchar(8000) 
 set @sql= 'select  ' ' '+replace(@str, ', ', ' ' ' union all select  ' ' ')+ ' ' ' ' 
 exec( @sql )   
 /*        
 ----  
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 55 
 */
------解决方案--------------------declare @str varchar(8000) 
 set @str= '1,2,3,4,5,6,7,8,55 '   
 set @str= 'select  '+replace(@str, ', ', ' union all select  ')   
 exec(@str)
------解决方案--------------------declare @str as varchar(100),@sql varchar(8000) 
 set @str =  '1,2,3,4,5,6,7,8,55 '   
 set @sql= 'select  '+replace(@str, ', ', ' union all select  ') 
 exec( @sql ) 
------解决方案--------------------declare @str varchar(8000) 
 set @str= '1,2,3,4,5,6,7,8,55 '   
 set @str= 'select  '+replace(@str, ', ', ' union all select  ')   
 exec(@str) 
 ------- 
 顶~很久没用,都忘了有这个方法啦
------解决方案--------------------参考:   
 CREATE TABLE A(id INT,country VARCHAR(100)) 
 INSERT A 
 SELECT 1, '中国;日本;韩国 ' UNION ALL 
 SELECT 2, '美国;意大利;法国 ' UNION ALL 
 SELECT 3, '德国 ' 
 SELECT * FROM A   
 -- 建立一个辅助的临时表就可以了 
 SELECT TOP 8000 id = identity(int,1,1)  
 INTO # FROM syscolumns a, syscolumns b         
 SELECT  
     A.ID,  
     COUNTRY = SUBSTRING(A.COUNTRY, B.ID, CHARINDEX( '; ', A.COUNTRY +  '; ', B.ID) - B.ID)  
 FROM A, # B 
 WHERE SUBSTRING( '; ' + a.COUNTRY, B.id, 1) =  '; '    
 ORDER BY 1,2 
 GO   
 DROP TABLE A,#   
 id          country          
 ----------- ---------------- 
 1           中国;日本;韩国 
 2           美国;意大利;法国 
 3           德国   
 (所影响的行数为 3 行)   
 ID          COUNTRY   
 ----------- --------- 
 1           韩国 
 1           日本 
 1           中国 
 2           法国 
 2           美国 
 2           意大利 
 3           德国   
 (所影响的行数为 7 行)