MSSQL中截取特定的字符串

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 02:16 点击:

 

上午遇到一个需求,需要在数据库中截取一个字符串的特定部分:

 

假设一个字符串是邮箱地址“hello@163.com”,最后取到的字符串应该是“hello”。

 

因为上面的这个需求,看了一下数据库中关于字符串函数这方面的知识,最终可以得到以下几种解决的方法:

 

一、用到的函数:substring(' ', , )、charindex(' ',' ')

 

select SUBSTRING('hello@163.com',1,charindex('@','hello@163.com')-1)

 

1.substring(字符串表达式,开始位置,长度):

 

从一个指定字符串的指定位置截取制定长度的字符;

 

第一个参数表示被截取的字符串;

 

第二个参数表示要在第一个参数中开始截取的位置;

 

第三个参数表示要截取的长度。

 

例如:select substring('abc123',1,2)    →返回ab

 

从字符串‘abc123’的第一个字符开始截取,共截取两个字符,最后得到‘ab’。

 

2.charindex(字符串表达式1,字符串表达式2[,整数表达式]):

 

在字符串2中查找字符串1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一个是null则返回null。

 

可以指定在字符串2中查找的起始位置。

 

例如:select charindex('ab','BCabTabD')    → 返回3

 

           select charindex('ab','BCabTabD',4)   →返回6

 

二、用到的函数:left(' ', )、charindex(' ',' ')

 

select LEFT('hello@163.com',charindex('@','hello@163.com')-1)

 

1.left(字符串表达式,整数表达式):

 

从字符串表达式的最左边开始截取整数表达式个字符。

 

例如:select left('abcdef',3)   →返回abc

 

 

 

数据库这方面的知识,学的时候感觉简单,也容易理解,但是当学过之后一段时间不用了就会想不起来,这也充分的说明了一个问题:知识的积累也是一个重复的过程!

作者 阴慧超

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 如何将多个SQL查询统计结果一次显示出来
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • sql server 列转行
      • SQL小技巧系列 --- 行转列合并
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1