sql语句中怎样将一个字符串分割为若干定长的子串?
今天找数据发现一个设计很头大,一堆字符串丢在一个字段里,只有四个四个分割开来才有意义,于是想有什么迅捷的办法在sql语句里实现定长分割字符串嘞?不是一定要用过程语句吧……...
今天找数据发现一个设计很头大,一堆字符串丢在一个字段里,只有四个四个分割开来才有意义,于是想有什么迅捷的办法在sql语句里实现定长分割字符串嘞?不是一定要用过程语句吧……
展开
展开全部
--分割,亦可以用substring函数歼键凳
--MS-SQL SERVER2005及以上版本测试通过
DECLARE @STR VARCHAR(MAX),@PRAM VARCHAR(20)
SET @STR='浮游浮游不知所求不知所往'
WHILE LEN(@STR)>0
BEGIN
SET @PRAM=LEFT(@STR,4)
PRINT '取亮巧得参数:'+@PRAM
SET @STR=RIGHT(@STR,LEN(@STR)-4)
PRINT '剩余字符串:'+@STR
END
/*结果:
取氏旅得参数:浮游浮游
剩余字符串:不知所求不知所往
取得参数:不知所求
剩余字符串:不知所往
取得参数:不知所往
剩余字符串:*/
--MS-SQL SERVER2005及以上版本测试通过
DECLARE @STR VARCHAR(MAX),@PRAM VARCHAR(20)
SET @STR='浮游浮游不知所求不知所往'
WHILE LEN(@STR)>0
BEGIN
SET @PRAM=LEFT(@STR,4)
PRINT '取亮巧得参数:'+@PRAM
SET @STR=RIGHT(@STR,LEN(@STR)-4)
PRINT '剩余字符串:'+@STR
END
/*结果:
取氏旅得参数:浮游浮游
剩余字符串:不知所求不知所往
取得参数:不知所求
剩余字符串:不知所往
取得参数:不知所往
剩余字符串:*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
declare @t table(id int,remark varchar(500))
insert into @t select 1,'abcd4321中国绝稿人民5678中华人民共和国今天正式并慧孝成立了!'
select id,remark
,SUBSTRING(remark,4*0+1,4)
,SUBSTRING(remark,4*1+1,4)
,SUBSTRING(remark,4*2+1,4)
,SUBSTRING(remark,4*3+1,4)
from @t
---
id (无列名) (无列名) (无列名碧塌) (无列名)
1 abcd 4321 中国人民 5678
insert into @t select 1,'abcd4321中国绝稿人民5678中华人民共和国今天正式并慧孝成立了!'
select id,remark
,SUBSTRING(remark,4*0+1,4)
,SUBSTRING(remark,4*1+1,4)
,SUBSTRING(remark,4*2+1,4)
,SUBSTRING(remark,4*3+1,4)
from @t
---
id (无列名) (无列名) (无列名碧塌) (无列名)
1 abcd 4321 中国人民 5678
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用substring(str,1,4)截取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个毫无疑问,要不在程序中处理,要不,就是要写个过程语句了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询