• SQLServer系列(一):系统函数之字符串函数


    一.字符串函数

    参数character_expression:由字符数据组成的字母数字表达式,可以是常量或变量,也可以是字符列或二进制数据列

    参数integer_expression:是正整数,如果 integer_expression 为负,则返回空字符串

     1.SubString():截取指定的字符串

    --substring(character_expression,integer_experssion,integer_expression)
    --character_expression: 表达式(varchar、nvarchar、char、text、ntext、varbinary、image)
    --integer_experssion:开始位置(bigint)
    --integer_expression 长度(bigint)不能为负数
    --返回字符表达式、二进制表达式、文本表达式或者图像表达式的一部分(varchar、nvarchar、char、text、ntext、varbinary、image)
    --简而言之:substring(字符串,开始位置,截取长度)
    select substring('Hello',1,4)  --返回Hell
    select StuName,substring(StuName,1,2) as '姓名的前两位' from Student 

    2.Replace ():替换字符串 

    --replace(character_expression,searchstring,replacementstring)
    --character_expression:是函数要搜索的有效字符表达式(varchar,nvarchar)
    --character_expression:是函数尝试定位的有效字符表达式(varchar,nvarchar)
    --replacementstring:是用作替换表达式的有效字符表达式(varchar,nvarchar)
    --返回用第三个表达式替换第一个表达式中出现的所有第二个表达式
    --简而言之:replace(字符串,需要被替换的字符串,替换成的字符串)
    select replace('MingRMRM','RM','Ri') --返回MingRiRi
    select replace('1234','1','2') --返回2234 

    3.Left():取左边指定个数的字符

    --left(character_expression,integer_expression)
    --character_expression:字符串或者二进制数据表达式(varchar,nvarchar)
    --integer_expression:指定character_expression将返回的字符数,不能为负数(int)
    --返回字符表达式中最左侧指定数目的字符
    --简而言之:left(字符串,指定最左侧返回的数目)
    select left('中华有为',2) --返回中华
    select left(StuName,1) from Student --返回姓名的第一个字

    4.Right():取右边指定个数的字符

    --right(character_expression,integer_expression)
    --character_expression:字符串或者二进制数据表达式(varchar,nvarchar)
    --integer_expression:指定character_expression将返回的字符数,不能为负数(int)
    --返回字符表达式中最右侧指定数目的字符
    --简而言之:right(字符串,指定最右侧返回的数目)
    select right('中华有为',2) --返回有为
    select right(StuName,1) from Student --返回姓名的最后一个字

    5.ASCII():获取ASCII码

    --ASCII(character_expression)
    --character_expression:char或者varchar类型的表达式(char、varchar)
    --返回字符表达式中最左侧的字符的ASCII代码
    --返回类型:int
    --注意:ASCII码共127个,其中8、9、10、13分别转换为退格、制表、换行和回车字符
    select ASCII('A') --返回ASCII码65 按键A
    select ASCII(' ') --返回ASCII码32 按键[space] 空格键

    6.Char():转换成字符

    --char(integer_expression)
    --将整数ASCII代码转换成字符串
    select char(65) --返回A 
    select char(32) --返回空格

    7.CharIndex():返回字符串起始位置

    --charindex(character_expression1,character_expression2,[,start_location])
    --character_expression1:包含要查找的序列的字符串表达式
    --character_expression2:要搜索的字符表达式
    --start_location:开始位置,如果未指定则将expression2的开头搜索
    --返回字符串中指定表达式的起始位置
    --[]里面的内容说明可以省略,缺省情况下,说明用‘[]’引用
    select charindex('','中华有为')--返回4
    select charindex('','中华有为',5) --返回0  搜索字符串的位置值有4位
    select charindex('','中华有为',2)--返回4  返回的是字符串所在搜索字符串的位置

    8.PatIndex()返回表达式模式的字符串的起始位置

    --patindex(character_expression1,characterexpression2)
    --character_expression1:搜索模式文字
    --character_expression2:要搜索的表达式
    -- 精确匹配,完全匹配1,不完全匹配0
    --模糊匹配,返回从第几位开始匹配
    --返回指定表达式模式的第一次出现的开始位置
    select patindex('%a%','123456a') --返回6 模糊匹配
    select patindex('a','123456a') --返回0 精确匹配

    9.Len():返回字符个数

    --len(character_expression)
    --character_expression:表示要处理的表达式(varchar、nvarchar)
    --返回字符表达式中的字符数(int)
    select len('abcd')--返回4
    select len(12345)--返回5

    10.Stuff():在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串

    --stuff(character_expression,bigint_expression1,bigint_expression2,character_expression1)
    --character_expression:要搜索的表达式(varchar、nvarchar、varbinary)
    --integer_expression1:开始位置
    --integer_expression2:字符数
    --character_expression1:替换的表达式
    select stuff('abcdefg',3,2,'aa') --返回abaaefg

    11.Difference():SOUNDEX值之差

    --difference ( character_expression , character_expression )
    --character_expression:类型 char 或 varchar 的表达式
    --以整数返回两个字符表达式的SOUNDEX值之差,返回的值从 0 到 4 不等,4 表示 SOUNDEX 值相同
    --返回类型:int
    SELECT  DIFFERENCE('Test', 'Test') --4

    12.Soundex():由四个字符表示的soundex代码

    --soundex(character_expression)
    --返回由四个字符表示的soundex代码
    select soundex('abcd') --返回A120

    13.Lower():大写字母转小写字母

    --lower(character_expression)
    --character_expression:字符串或者二进制数据表达式(varchar、nvarchar)
    --返回将大写字符转换为小写字符的字符表达式
    select lower('ABCD') --返回abcd
    select lower('张San') --返回张san

    14.Upper():小写字母转大写字母

    --upper(character_expression)
    --character_expression:字符串或者二进制数据表达式(varchar、nvarchar)
    --返回将小写字符转换为大写字符的字符表达式
    select  upper('abcd') --返回ABCD
    select  upper('张San') --返回张SAN

    15.Ltrim():清除左边字符的空格

    --ltrim(character_expression)
    --character_expression(varchar、nvarchar)
    --返回删除了前导空格之后的字符表达式
    select ltrim('   Test Test ') --返回Test Test

    16.Rtrim():清除右边字符的空格

    --rtrim(character_expression)
    --character_expression(varchar、nvarchar)
    --返回截断了所有尾随空格之后的字符表达式
    select rtrim('   TestTest  ') --返回  TestTest

    17.Nchar():给定的整数代码的Unicode字符

    --nchar(integer_expression)
    --integer_expression(int)
    --返回具有给定的整数代码的Unicode字符
    --Unicode:统一码、万国码、单一码
    select nchar(100) --返回d

    18.Quotename():返回带有分隔符的 Unicode 字符串,主要作用就是在SQL语句中,给列名、表名等加个[]、’’

    --quotename(character_expression,[,character_expression1])
    --character_expression,unicode字符数据构成的字符串,character_expression是sysname值
    --character_expression1:引号字符,如果未指定则使用方括号作为分隔符([ ])
    --quotename()的主要作用就是在存储过程中,给列名、表名等加个[]、’’等以保证sql语句能正常执行
    select quotename('stuname','''') --返回'stuname'
    select quotename('student')--返回[student]

    19.Replicate():按指定次数重复字符表达式

    --replicate(character_expression ,integer_expression)
    --character_expression:需要复制的表达式
    --integer_expression:复制次数
    select replicate('abcd',3) --返回abcdabcdabcd

    20.Reverse():返回字符表达式的逆向表达式

    --reverse(character_expression)
    --返回字符表达式的逆向表达式
    select reverse('abcd') --返回dcba

    21.Space():返回由重复空格组成的字符串

    --space(integer_expression)
    --返回由重复空格组成的字符串
    --返回类型:char
    select space(2)--返回2个空格

    22.Str():将数值表达式转换字符表达式

    --str(float_expression[,length[,demical_expression]])
    --length:是总长度,包括小数点、符号、数字或空格。默认值为 10
    --demical_expression:小数点右边的位数
    --返回从数值表达式转换而来的字符表达式
    --返回类型:char
    select str(23.35,8,3) --返回   23.350
    select len(str(23.35,8,3)) --返回8

    23.UniCode():表达式第一个字符Unicode的整数值

    --unicode(character_expression)
    --character_expression:需要转换的表达式
    --返回表达式第一个字符Unicode的整数值
    select unicode('abcd') --返回97

     24.String_Split():分隔字符串,返回表,列名为value

    --string_split(character_expresstion1,character_expresstion2)
    --character_expresstion1:需要分隔的字符串
    --character_expresstion2:分隔符
    --返回子字符串的单列的表(table) 该列名为“value” 
    select value from string_split('jsp-asp','-') 
  • 相关阅读:
    python的变量,对象的内存地址以及参数传递过程
    win10环境pycharm社区版创建django项目
    组合,菱形继承,子类重用父类2,深度广度查找
    类内的函数共享给对象使用
    模块与面向对象初解
    正则模块,sys模块
    包介绍,与日记模块
    模块运用,文件搜索
    递归,匿名函数
    生成器与简写
  • 原文地址:https://www.cnblogs.com/vic-tory/p/11459780.html
Copyright © 2020-2023  润新知