sqlserver提供了一系列字符串处理函数:substring、left、right、len、charindex、patindex、replace、replicate、stuff、upper、lower、rtrim、ltrim等函数。

  • substring函数用于从字符串中提取子串,从指定位置开始(start),具有特定长度(length)的子字符串。

    substring(string,strat,length)

    eg:  select  substring('abcde',1,3)返回子字符串'abc'

select  substring('abcde',1,8)返回字符串'abcde'(如果length长度大于字符串长度,则返回原字符串)

  • leftright函数返回输入字符串从左或右开始的n个字符

    left(sting,n)            /              right(string,n)

    eg:  select  left('abcde',3)返回字符串'abc'

select  right('abcde',3)返回字符串'cde'

  • lendatalength函数分别返回字符串中的字符数以及字符串中的字节数

    len(string)            /                datalength(string)

    eg:  select  len('and')返回字符数3

           select  datalength(N'abc')返回字节数6

           select len('  abc   ')返回5,无论有多少个连续空格,均计算一次

  注:普通字符,字符串的字符数和字节数是一致的,这是因为一个字符只占一个字节的存储空间

Unicode字符,字符串的字符数和字节数是不一致的,一个字符占用两个字节的空间,故字符数是字节数的一半  

  • charindex函数返回字符串中某个子串首次出现的起始位置

    charindex(substring,string[,start_pos]),可以选择性的指定搜索的起始位置,即对start_pos赋值,未对其赋值则从第一个字符开始搜索

    eg:  select  charindex('m','abnmdemf',5)返回7
           select  charindex('m','abnmdemfcv',8)返回0
           select  charindex('m','abnmdemf',3)返回4

    默认情况下,sqlserver对大小写是不敏感的,但是当设置了对大小写敏感COLLATE Latin1_General_CS_AS时(patindex函数同样适用):

    eg:  select  charindex'test', 'this Test is Test' COLLATE Latin1_General_CS_AS)返回0

           select  charindex'test', 'this Test is Test' COLLATE Latin1_General_CI_AS)返回6

  • patindex函数返回某个模式第一次出现的起始位置

    patindex(pattern,string)

    eg:  select patindex('%[0-9]%','abcd123efgh')返回5,查询数字0-9中任一数字在字符串'abcd123efgh'首次出现的位置,%表示数字前可以匹配任意长度的字符,包括空字符

  • replace函数将字符串中出现的所有某个子串替换为另一个字符串

    replace(string,substring1,substring2)将substring1替换为substring2

    eg:  select replace( 'l-a 2-b',  '-',  ':')返回结果为'1:a 2:b'

  • replicate函数指定的次数复制字符串

    replicate(string,n)

    eg:  select  replicate('abc',3)返回'abcabcabc'

  • stuff函数先删除字符串中的一个子串,再插入一个新的子串作为替换

    stuff(string,pos,delete_length,insertstring)

    eg:  select  stuff('xyz',2,1,'abc')返回'xabcz'

  • upperlower函数将字符串转换为大写或小写

    upper(string)          /         lower(string)

  • rtrimltrim函数删除字符串中的尾随空格或前导空格

    rtrim(string)           /          ltrim(string)

    eg:  select  rtrim(ltrim('  abc   '))

  

SQLSERVER字符串处理函数的更多相关文章

  1. sqlserver 字符串处理函数解释

    1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.2.CHAR()将ASCII ...

  2. SqlServer——字符串处理函数

    1) ASCII Format:ASCII ( character_expression ) Function:返回表达式最左端字符的ASCII值. eg: select ASCII('abcdef' ...

  3. SQLserver字符串分割函数

    一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果.CREATE function Get_StrArrayLength(  @s ...

  4. [转]SQLserver字符串分割函数

    一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果. CREATE function Get_StrArrayLength ( ) ...

  5. sqlserver字符串拆分函数

    CREATE FUNCTION f_splitSTR(@s varchar(8000), --待分拆的字符串@split varchar(10) --数据分隔符)RETURNS @re TABLE(c ...

  6. SQLserver 字符串分割函数

    CREATE function Get_StrArrayStrOfIndex ( @str varchar(), --要分割的字符串 @split varchar(), --分隔符号 @index i ...

  7. ylb:SQLServer常用系统函数-字符串函数、配置函数、系统统计函数

    原文:ylb:SQLServer常用系统函数-字符串函数.配置函数.系统统计函数 ylbtech-SQL Server:SQL Server-SQLServer常用系统函数 -- ========== ...

  8. sqlserver学习笔记(六)—— sqlserver内置函数(字符串、日期)

    sqlserver中有很多内置函数,这里总结了一些常用的 一.关于字符串的函数: 1.CHARINDEX 寻找一个指定字符串在另一个字符串中的起始位置 SELECT CHARINDEX('world‘ ...

  9. 【转载】Sqlserver使用SUBSTRING函数截取字符串

    在SQL语句查询过程中,Sqlserver支持使用LEFT().RIGHT().SUBSTRING()等几个函数对字符串进行截取操作,SubString函数相对于其他两个函数来说更灵活,使用场景更多, ...

随机推荐

  1. 2 Docker 镜像基础

    Docker 镜像可以从docker.io 下载,也可以自己通过Dockerfile来构建镜像,我有时从国外下载镜像时,网速不行,我就改成国内的镜像,修改如下: # vim /etc/docker/d ...

  2. January 12 2017 Week 2 Thursday

    Although it rains, throw not away your watering pot. 纵然天下雨,休把水壶丢. Don't throw away your watering pot ...

  3. Python读取Json字典写入Excel表格的方法

    需求: 因需要将一json文件中大量的信息填入一固定格式的Excel表格,单纯的复制粘贴肯定也能完成,但是想偷懒一下,于是借助Python解决问题. 环境: Windows7 +Python2.7 + ...

  4. 3669. [NOI2014]魔法森林【LCT 或 SPFA动态加边】

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  5. Hadoop 解除 NameNode is in safe mode

    运行Hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Na ...

  6. 软件分享:将应用一键打包成dmg文件

    简介 苹果软件开发完成后,都要打包成dmg文件.通常的做法也许是到系统自带的磁盘工具里制作dmg文件,但这样做比较繁琐,尤其是要打包多个应用时,每次只能制作一个dmg文件很麻烦.分享一个很好用很方便的 ...

  7. MFC各个控件之间运用SendMessage()传送CString和char[]字符串,以及int类型数据

    LRESULT SendMessage( HWND hWnd, // handle to destination window UINT Msg, // message WPARAM wParam, ...

  8. 博客存档TensorFlow入门一 1.4编程练习

        import tensorflow as tf import numpy import matplotlib.pyplot as plt #from sklearn.model_selecti ...

  9. vlc源码分析(二) 播放流程

    当点击播放文件或者输入要播放的文件后,vlc会执行一系列的流程. 首先需要了解视频以及流媒体处理及播放的流程,由链接中的描述,视频以及流媒体处理时,首先要解协议(http,rtmp,rtsp等),然后 ...

  10. 解决error possibly undefined macro AC_MSG_ERROR

    问题 出现如下缺少宏的问题 error: possibly undefined macro: AC_MSG_ERROR error: possibly undefined macro: AC_SUBS ...