用一个自定义函数...
--转贴,参考http://expert.csdn.net/Expert/topic/3007/3007819.xml?temp=.0811426
--作者:zjcxc(邹建)
--写个自定义函数就行了.if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_split]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_split]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[序数表]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [序数表]
GO--为了效率,所以要一个辅助表配合
select top 8000 id=identity(int,1,1) into 序数表
from syscolumns a,syscolumns b
alter table 序数表 add constraint pk_id_序数表 primary key(id)
go/*--字符串分函数 分拆指定分隔符的的字符串,返回结果表--邹建 2004-4--*/
create function f_split(
@str varchar(8000), --要分拆的字符串
@splitchar varchar(10) --分隔符
)returns table
as
return(
select re=substring(@str,id,charindex(@splitchar,@str+@splitchar,id)-id)
from 序数表
where id<=len(@str)+1 and charindex(@splitchar,@splitchar+@str,id)-id=0
)
go--调用
select * from f_split('asdlkfa,asf as,dd a,',',')
--转贴,参考http://expert.csdn.net/Expert/topic/3007/3007819.xml?temp=.0811426
--作者:zjcxc(邹建)
--写个自定义函数就行了.if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_split]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_split]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[序数表]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [序数表]
GO--为了效率,所以要一个辅助表配合
select top 8000 id=identity(int,1,1) into 序数表
from syscolumns a,syscolumns b
alter table 序数表 add constraint pk_id_序数表 primary key(id)
go/*--字符串分函数 分拆指定分隔符的的字符串,返回结果表--邹建 2004-4--*/
create function f_split(
@str varchar(8000), --要分拆的字符串
@splitchar varchar(10) --分隔符
)returns table
as
return(
select re=substring(@str,id,charindex(@splitchar,@str+@splitchar,id)-id)
from 序数表
where id<=len(@str)+1 and charindex(@splitchar,@splitchar+@str,id)-id=0
)
go--调用
select * from f_split('asdlkfa,asf as,dd a,',',')
解决方案 »
- SSRS报表新增列排序问题
- 求一个统计问题
- 如何insert into 二进制数据(Image)
- 关于触发器创建的问题.对象名无效..
- 又来送分了啦!简单的很---如何安装MSDE !!!
- 一个SQL 中的查询问题一列中的数据,转换成一行。
- 在一个存储过程中如何根据用户选择的不同条件来进行查询?急!!!!
- 天那!就这么一个问题,难道就没有一个人会?如果自以为是程序员的话,就请看看吧
- 如果解决给100分,NT验证和SQL验证问题?
- 如何在SQL Server中建立一个链接VFP数据源的链接服务器,并对其中的表查询?
- 请教如何查看数据库内FOREIGN KEY约束
- 请高手指教:如何从表中获取当前记录的记录号,在oracle中有rowid,在sql中有没有对应的?
declare @t table(a1 varchar(100),a2 varchar(100))
declare @a1 varchar(100),@a2 varchar(100)
declare c_1 cursor for select a1,a2 from t
open c_1
fetch next from c_1 into @a1,@a2
while @@fetch_status=0
begin
while charindex(',',@a2)>0
begin
insert into @t(a1,a2) values(@a1,left(@a2,charindex(',',@a2)-1))
set @a2=right(@a2,len(@a2)-charindex(',',@a2))
end
insert into @t(a1,a2) values(@a1,@a2)
fetch next from c_1 into @a1,@a2
end
close c_1
deallocate c_1
select * from @t
BEGIN
DECLARE @WendSeed AS int
SET @WendSeed = 1
WHILE @WendSeed <= LEN(a2)
BEGIN
SELECT a1 + SUBSTRING(a2,@WendSeed,1)
SET @WendSeed = @WendSeed + 2
END
END
ELSE
BEGIN
SELECT a1 + a2
END
我用你的方法解决问题了