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

一、拆分字符串为若干行

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

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

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

表emp:

eid  ename
1 ring
2 king
3 ting
4 ping

首先,建立表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;

时间: 2024-10-18 18:13:35

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

SQL点滴33—SQL中的字符串操作

原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !') select upper('i am a student !') 截去字符串左.右侧空格                                    

SQL中关于字符串的处理

DECLARE @STR VARCHAR(MAX),@PRAM VARCHAR(20)SET @STR='中华人民共和国万岁'--字符串连接SET @[email protected]+'an'[email protected] --字符串拆分WHILE LEN(@STR)>0BEGINSET @PRAM=LEFT(@STR,4)PRINT '取得参数:'[email protected]SET @STR=RIGHT(@STR,LEN(@STR)-4)PRINT '剩余字符串:'[email p

Python中如何计算字符串里面某一个字符出现的次数?

一个突发奇想,想解决一个学习中的行业痛点,让我又再度拾起了Python编程语言的学习. 刚学两天,今天遇到一个题,该题难度不高,但有一点关键点在网上找不到,网上也没有相关的答案,于是我只好千辛万苦地去CSDN.脚本之家上面寻找教程,看文档,最后成功解决了. 题目内容:接受一个由字母和数字组成的字符串,和一个字符,然后输出输入的字符串中含有该字符的个数.不区分大小写. 可以使用以下语句实现字符串s的输入:s=str(input()) 输入格式:输入一个由字母和数字组成的字符串,和一个字符,以空格隔

C#中Predicate&lt;T&gt;与Func&lt;T, bool&gt;泛型委托的用法实例

本文以实例形式分析了C#中Predicate<T>与Func<T, bool>泛型委托的用法,分享给大家供大家参考之用.具体如下: 先来看看下面的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 static void Main(string[] args) { List<string> l = new List<string>(); l.Add("a"); l.Add("b");

SQL中判断字符串中包含字符的方法

通过2个函数CHARINDEX和PATINDEX以及通配符的灵活使用函数:CHARINDEX和PATINDEXCHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始位置.PATINDEX:查某字符(串)是否包含在其他字符串中,返回指定表达式中某模式第一次出现的起始位置:如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零.特殊:可以使用通配符! 例子:1. 查询字符串中是否包含非数字字符SELECT PATINDEX('%[^0-9]%', '1235X4

shell中拆分字符串

最近系统学习了shell编程. 看到书本里面的一个例子,很屌.之前自己也想过,但是没有得到结果. 相信同学们也猜到这个例子了,就是一行字符串的拆分.在看答案之前,同学们可以自己尝试一下. 这里我总结了三种方式.仅供参考. 1. 首先当然是书本里面的内容: echo jalsdfjlasjdl | sed "s/[^\n]/&\n/g" 这个例子的输出就是把每个字符都单独成为一行了. sed语句相信同学们都不陌生.唯一让人疑惑的可能就是&符号的使用.其实结合这个句子,也能

sql中遍历字符串

在sql或者存储过程中会需要遍历字符串. declare @idList varchar(500), --如111,222,333,尾部加, @str varchar(100), @Id int, @split varchar(10) set @split = ',' while(charindex(@split,@idList)<>0) begin set @str = substring(@idList,1,charindex(@split,@idList)-1) set @idList

sql中取出字符串中数字

select substring(reverse('0->星光'),PATINDEX('%[0-9]%',reverse('0->星光')),1) 原文地址:https://www.cnblogs.com/guangzhou11/p/9093066.html

SQL中的left outer join,inner join,right outer join用法详解

这两天,在研究SQL语法中的inner join多表查询语法的用法,通过学习,发现一个SQL命令,竟然涉及到很多线性代数方面的知识,现将这些知识系统地记录如下: 使用关系代数合并数据1 关系代数合并数据集合的理论基础是关系代数,它是由E.F.Codd于1970年提出的.在关系代数的形式化语言中:?          用表.或者数据集合表示关系或者实体.?          用行表示元组.?          用列表示属性.关系代数包含以下8个关系运算符?          选取――返回满足指定条