• 1
  • 2
  • 3
  • 4
  • 5
mssql数据库问题 首 页  »  帮助中心  »  数据库  »  mssql数据库问题
拆分字符串substr及统计字符出现频数replace的用法
发布日期:2016-4-27 19:4:50

  一、拆分字符串为若干行

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

  请注意:

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

  图1所示的为表emp


   图1

  1ring

  2king

  3ting

  4ping

  1.建立表tmp(基干表,配合表1使用):


    图2

  2.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

  3.最后: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

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

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

  例2:计算10,clark,manager中逗号的数量

  参考代码如下所示:

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

  转载:http://www.cnblogs.com/smallcrystal/ 作者:水晶球

       后面会更新mysql的相关教程,关注mysql的朋友敬请期待。