SQL中拆分字符串substr及统计字符出现频数replace用法实例讲解

一、拆分字符串为若干行

例一:要求将表emp中的'king'按照每行一个单词拆成四行

注意:substr(str,pos):截取pos位置开始的字符;

        substr(str,pos,len):从pos位置开始,选出接下去的len个字符

表emp:

eid ename
1ring
2king
3ting
4ping

 

 

 

 

首先,建立表tmp(基干表,为了配合表一使用):

tid
1
2
3
4
5

 

 

 

 

 

然后,select emp.ename,tmp.tid from emp,tmp where emp.ename=‘king’;/*没有主键和外键,生成king的笛卡尔集/

ename tid

king    1
king    2
king    3
king    4
king    5
最后:select substr (ename,tid,1) as a from (select emp.ename,tmp.tid from emp,tmp where emp.ename=‘king’) as e where e.tid <= length(e.ename);

结果:

a:

k

i

n

g

若select substr (ename,tid) as b, substr(ename,length(ename)-tid+1).......结果将会出现

b     c

king g

ing   ng

ng    ing

g      king

 

 

二、计算字符在字符串中出现的次数

replace函数:replace(要搜索的字符串表达式,要查找的字符串,替换字符串)

例二:计算10,clark,manager中逗号的个数

select (length('10,clark,manager')-length(replace('10,clark,manager',',',''))/length(',')) as c from tablename;

 

转载于:https://www.cnblogs.com/smallcrystal/p/5005067.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值