请问sql中有没有类似于asp中的split这样的函数?
表table1,字段content,值0|2|2|1|0
想实现这样的查询:select id from table where split(content,'|')(0) = '0'
当然了,split函数只是我假设的,不知道sql中有没有现成的函数可以用?如果没有,又有没有可以实现这种查询的方法呢?谢谢..
问题点数:20、回复次数:5Top
1 楼netcoder(朱二)回复于 2004-11-03 08:57:35 得分 6
没有
可以这样
select id from table where left(content,1)= '0'Top
2 楼zjcxc(邹建)回复于 2004-11-03 08:58:07 得分 12
--要自己写函数
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]
GO
if 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.04(引用请保留此信息)--*/
/*--调用示例
select * from f_split('考号kaohao 科目kemu 学期xueqi',' ')
--*/
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
Top
3 楼jasomliu(阿牛(喜欢斑马的牛))回复于 2004-11-03 08:58:18 得分 2
帮你顶一下~Top
4 楼yuanrong(超级猫)回复于 2004-11-03 09:30:13 得分 0
谢谢邹建和其它两位朋友。Top
5 楼hityxn(小宁)回复于 2005-01-17 15:32:39 得分 0
upTop




