某字段的值: 某某某-某某某某某-某某-某某某某
每段长度不定 但总段数固定 并用于分割的字符也固定
需要返回的集中有4个字段 值分别是其中的4段
用substring实在是太烦了
高人有好的办法吗
每段长度不定 但总段数固定 并用于分割的字符也固定
需要返回的集中有4个字段 值分别是其中的4段
用substring实在是太烦了
高人有好的办法吗
解决方案 »
- vista系统下如何安装sql2000
- 如何实现修改数据库里以前建过表的时间?
- 能否将企业管理器中->注册实例->右键->属性->安全性中->启动服务帐户->本地帐户 默认的修改掉啊100分的问题
- 在查询分析器中将查询结果导出为csv文件格式时,如何才能连表头一同导出呀?
- 急!客户端通过代理服务器上网,如何连通SQL服务器?
- 更新数据库,在线等
- file is encryped or is not a database
- 请教各位大虾如何查出一个表中有unicode制约的字段?
- sql2000 服务未响应 是为什么。。。。。
- SQL SERVER 远程访问(急!!!请大家帮忙解决)
- 40分求一简单sql语句
- 高手帮忙分析一下这个sql语句
set @s = '某某某-某某某某某-某某-某某某某'select PARSENAME ( replace(@s,'-','.') , 1 ) ,
PARSENAME ( replace(@s,'-','.') , 2) ,
PARSENAME ( replace(@s,'-','.') ,3) ,
PARSENAME ( replace(@s,'-','.') , 4)
set @s = '某某某-某某某某某-某某-某某某某'select PARSENAME ( replace(@s,'-','.') , 1 )
select PARSENAME ( replace(@s,'-','.') , 2)
select PARSENAME ( replace(@s,'-','.') ,3)
select PARSENAME ( replace(@s,'-','.') , 4) /*
--------------
某某某某(所影响的行数为 1 行)
-------------
某某(所影响的行数为 1 行)
-------------
某某某某某(所影响的行数为 1 行)
--------------
某某某(所影响的行数为 1 行)
*/
set @s = '某某某-某某某某某-某某-某某某某'select PARSENAME ( replace(@s,'-','.') , 1 ) ,
PARSENAME ( replace(@s,'-','.') , 2) ,
PARSENAME ( replace(@s,'-','.') ,3) ,
PARSENAME ( replace(@s,'-','.') , 4)
insert into tb select '某某某-某某某某某-某某-某某某某'select
PARSENAME(replace(s,'-','.'),4) as 第1列,
PARSENAME(replace(s,'-','.'),3)as 第2列,
PARSENAME(replace(s,'-','.'),2)as 第3列,
PARSENAME(replace(s,'-','.'),1)as 第4列
from tb第1列 第2列 第3列 第4列
某某某 某某某某某 某某 某某某某
@s varchar(8000), --包含多个数据项的字符串
@pos int, --要获取的数据项的位置
@split varchar(10) --数据分隔符
)returns varchar(100)
as
begin
if @s is NULL return(NULL)
declare @splitlen int
select @splitlen=len(@split+'a')-2
while @pos>1 AND charindex(@split,@s+@split)>0
select @pos=@pos-1,
@s=stuff(@s,1,charindex(@split,@s+@split)+@splitlen,'')
return(isnull(left(@s,charindex(@split,@s+@split)-1),''))
endgo
declare @s varchar(200)set @s='某某某-某某某某某-某某-某某某某-某'select
dbo.f_GetStr(@s,1,'-') as c1,
dbo.f_GetStr(@s,2,'-') as c2,
dbo.f_GetStr(@s,3,'-') as c3,
dbo.f_GetStr(@s,4,'-') as c4,
dbo.f_GetStr(@s,5,'-') as c5/*
c1 c2 c3 c4 c5
---------------------------------------------------
某某某 某某某某某 某某 某某某某 某
*/godrop function dbo.f_GetStr
@s varchar(8000), --包含多个数据项的字符串
@pos int, --要获取的数据项的位置
@split varchar(10) --数据分隔符
)returns varchar(100)
as
begin
if @s is NULL return(NULL)
declare @splitlen int
select @splitlen=len(@split+'a')-2
while @pos>1 AND charindex(@split,@s+@split)>0
select @pos=@pos-1,
@s=stuff(@s,1,charindex(@split,@s+@split)+@splitlen,'')
return(isnull(left(@s,charindex(@split,@s+@split)-1),''))
end go
declare @s varchar(200) set @s='某某某-某某某某某-某某-某某某某-某' select
dbo.f_GetStr(@s,1,'-') as c1,
dbo.f_GetStr(@s,2,'-') as c2,
dbo.f_GetStr(@s,3,'-') as c3,
dbo.f_GetStr(@s,4,'-') as c4,
dbo.f_GetStr(@s,5,'-') as c5 /*
c1 c2 c3 c4 c5
---------------------------------------------------
某某某 某某某某某 某某 某某某某 某
*/ go drop function dbo.f_GetStr