sql语句 怎么在一个字符串中间加几个字符

就是假如"12345678"这个字符创,用一个sql语句怎么变成"12:34:56:78",就是每隔两个字符串加一个“:”还有一种情况就是字符串“12a34b56789”... 就是假如"12345678"这个字符创,用一个sql语句怎么变成"12:34:56:78",就是每隔两个字符串 加一个 “:”
还有一种情况 就是字符串“12a34b56789” 把第其中的几个字符串换位“:”就是变成“12:34:56:89”就是这样
展开
 我来答
freechan10
2019-11-15 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.8万
展开全部

1、创建测试表,

create table test_split(id number, value varchar2(20));

2、插入测试数据

insert into test_split values(1,'12345678');

insert into test_split values(2,'12345');

insert into test_split values(2,'5678');

3、查询表中记录,select t.*, rowid from test_split t;

4、编写sql,每隔两位用:分割,

select t.*,

       rtrim(substr(value, 1, 2) || ':' || substr(value, 3, 2) || ':' ||

             substr(value, 5, 2) || ':' || substr(value, 7, 2),

             ':') value2

  from test_split t;

百度网友1193bb8f7b
推荐于2017-12-16 · TA获得超过194个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:279万
展开全部
直接用估计没有,可以定义一个函数转一下,MSSQL中有个stuff函数
在指定位置替换或增加字符,比如:
SELECT STUFF('12345678', 2, 3, 'abc')
SELECT STUFF('12345678', 2, 0, ':')
但只能插入一个位置。
建议自定义一个字符串处理函数,然后在语句中调用吧
比如
create function dbo.fn_setColon (
@oldstr varchar(4000) )
returns varchar(4000)
as
begin
declare @outstr varchar(4000)
set @outstr=''
while (len(@oldstr)>2)
begin
set @outstr=@outstr+left(@oldstr,2)+':'
set @oldstr=right(@oldstr, len(@oldstr)-2)

end
if @oldstr<>''
begin
set @outstr=@outstr+@oldstr
end
return @outstr
end

select dbo.fn_getColon('123456789')
第二种情况可以先把字符串中的字母替换掉,然后再调用该函数,建议还是通过前端程序来处理字符串。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小古而倾乐29
2011-01-28 · TA获得超过1724个赞
知道小有建树答主
回答量:1614
采纳率:0%
帮助的人:311万
展开全部
使用right函数。
select right('123456789',6) as cc
-----------
result
'456789'
不过移植起来会有点麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式