• sql字符串函数


    *字符串函数

      1、获取字符的ASCII码 ASCII

        ASCII码是对字符的标准编码。要获取字符的ASCII码就可以通过调用ASCII函数来实现。

        语法结构:

      ASCII(espression)

        这里的expression是一个返回char或varchar数据类型的表达式,ASCII函数仅对表达式最左侧的字符返回ASCII码值。

        返回值:int数据类型。

        示例:

      select ASCII('f')    --输出 102

       注意如果是多个字符的字符串,也只是返回第一个字符的ASCII码值。

      2、获取ASCII码对应的字符 Char

        语法结构:

      char(integer_expression)

        返回值类型:char型字符

        示例:

      select char(102)    -- 输出f

      3、获取字符的unicode编码 Unicode

       unicode函数可以获得字符的unicode编码。

       语法结构:

      unicode('ncharacter_expression')

       这里的ncharacter_expression是nchar或nvarchar类型的表达式。函数仅会返回第一个字符的unicode编码。

       返回值:int类型数据

       示例:

      SELECT Unicode('')    -- 输出 39134

      4、获取unicode编码对应的字符nchar

        nchar能够根据unicode标准的定义,返回具有指定的整数代码的unicode字符。

        语法结构:

      nchar(integer_expression)

         返回值:unicode字符

         示例:

      SELECT nchar(39134)        -- 输出 飞

      5、获取字符串第一次出现位置PatIndex

       patindex函数返回指定表达式中某模式第一次出现的其实位置;如果在全部有效的文本和字符数据类型中没有找到该模式则返回0。

        语法结构:

      patindex( '%pattenr%' , expression )

        参数说明:

          pattern:一个文本字符串。可以使用通配符,但pattern之前和之后必须有%字符(搜索第一个或自后一个字符时除外)。因为在T-SQL中,%代表模式匹配。

        返回值:如果expression的数据类型为varchar(max)或nvarchar(max),则为bigint,否则int,即pattern指定的字符串在expression中第一次出现的位置。

        示例:

      select patindex('%llo%','hello world')    --输出3,第一次出现llo是在第3个字符位置

      6、生成空格字符串SPACE

        space函数可以生成任意多个空格组成的字符串。

        语法结构:

      space ( integer_expression )

        这里的integer_expression为指示空格个数的正整数。如果要在unicode数据中包含空格或超过8000个以上的空格。需要使用replicate函数。

        返回值:char数据类型的字符。

         示例:

      select ('hello' + space(5) + 'world')    --输出 hello     world

      7、按指定次数重复生成字符串REPLICATE

        replicate函数可以按照指定的整数次数,重复生成一个字符串形式的表达式,结果为字符串。

        语法结构:

      replicate( character_expression,integer_expression )

        参数说明:

         character_expression:字符数据的字母数字表达式,或者可隐式转换为varchar的数据类型的字母数字表达式。

         integer_expression:一个正整数。如果integer_expression为负,则会返回错误。integer_expression可以使bigint类型。

        返回值:与character_expression相同数据类型的字符串。

        示例:

      select replicate('hello',5)    --输出hellohellohellohellohello

      8、截取字符串SUBSTRING

        substring函数可以对字符串进行字串的截取操作。

        语法结构:

      substring( expression,start,length)

        参数说明:

         expression:是字符串、二进制字符串、文本、图像、列或包含列的表达式,但不要使用包含聚合函数的表达式。

         start:指定子字符串开始位置的整数,start可以使bigint类型。

         length:一个正整数,指定要返回的expression的字符数或字节数。如果length为负,则会返回错误。length可以使bigint数据类型。

        返回值:

         如果expression是受支持的字符数据类型,则返回字符数据。

         如果expression是受支持的binary数据类型,则返回二进制数据。

        示例:

      select substring('hello',1,2)    --输出 he 与C#有点不同,它第一个字符是从1开始的

      9、获取字符串长度LEN

        len函数用于获取字符串的长度(字符数),但不包括右边的空格。左边的空格和右边的空格计算在内。

        语法结构:

      len( string_expression )

        参数说明:

          string_expression:要计算长度的字符串。

        返回值:expression数据类型为varchar(max)、nvarchar(max)或varbinary(max),则为bigint。否则为int。

        示例:

      select len('天下之大,无奇不有')    -- 输出 9

      10、替换字符串内容STUFF

        stuff函数用于在指定的字符串中删除指定长度的字符,并在起点处插入另外一组字符。

        语法结构:

      stuff(source_character_expression,start,length,destination_character_expression)

        参数说明:

          source_character_expression:源字符串。可以是常量、变量,也可以使字符列或二进制数据列。

          start:一个整数,指定删除和插入的开始位置。如果start或length为负,则返回空字符串。如果start比第一个character_expression长,则返回空字符串。          start可以是bingint类型。

          length:一个赠书,指定要删除的字符个数。如果length比第一个charter_expression长,则最多删除到最后一个character_expression中最后一个字符。          length可以是bigint类型。

          destination_character_expression:目的字符串。可以是常量、变量,也可以使字符列或二进制数据列。将在源字符串中执行插入。

        示例:

      select stuff('123456789',5,2,'xyz')    --输出1234xyz780    从第5个字符开始,将第5 6两个字符替换成xyz字符串

       11、指定位置搜索字符串中的内容CHARINDEX

        charindex函数用于在指定的字符串中搜索特定的字符串,并可以指定开始搜索的位置,返回第一次找到目标字符串的字符数。

        语法结构:

      charindex ( expression1 , expression2 [ , start_location] )

        参数说明:

          expression1:一个字符串数据类型的表达式,其中包含要查找的字符的序列。

          expression2:一个字符串数据类型的表达式,通常是一个为指定序列搜索的列。

          start_location:开始在expression2中搜索expression1是的字符位置。如果start_location未被指定、是一个负数或零,则将从expression2的开头开始搜索。      start_location可以是bingint类型。

        返回值:如果expression2的数据类型为varchar(max)、nvarchar(max)或varbinary(max),则为bigint,否则为int。

         示例:

        select charindex('456','123456789')    -- 输出 4    从123456789中检索456出现的位置
        select charindex('456','123456789',4)    -- 输出 4

      12、生成带分隔符的unicode字符串 QUOTENAME

        QUOTENAME函数用于生成带有分隔符的Unicode字符串。

        (1)、分隔符

          可以是单引号(')、左右方括号([])或者英文双引号(")。如果不指定,则使用方括号。带有方括号的Unicode字符串如:[hello]。

        (2)、语法结构:

        quotename( 'character_string' [ , 'quote_character'] )

        参数说明:

          character_string:Unicode字符串数据构成的字符串。

          quote_character:用做分隔符的单字符字符串。

        (3)、返回值

          nvarchar(258),生成带有分隔符的字符串长度不能超过258

        示例:

        select quotename('我是一个兵')    -- 输出[我是一个兵]
        select quotename('我是一个兵','"')    -- 输出"我是一个兵"

      13、转换浮点数字为字符串 STR

       str函数用于将浮点数转换为字符串

       语法结构:

      str(float_expression[,length[,decimal]])

        float_espression:带小数点的近似数字(float)数据类型的表达式。

        length:总长度。它包括小数点、符号、数字以及空格。默认值为10.

        decimal:小数点后的位数。decimal必须小于或等于16.如果decimal大于16,则会截断结果,使其保持为小数点后只有16位。

       返回值:

         char:定长字符串。

       示例:

        select str(123.456789)    -- 输出 123
        select str(123.456789,7) --输出    123    注意前面的是4个空格,因为不写小数点后保留多少位,所以自动填充空格
        select str(123.456789,7,3)    -- 输出123.457    最后一位 四舍五入了,总长度为7小数点后保留3位

      14、截取左边字符串 LEFT

        left函数用于截取从左边第一个字符开始,指定长度的字符串。其执行效果等于substring(expression,1,length)。

        语法结构:

      left(character_expression,integer_expression)

        参数说明:

         character_expression:字符或二进制表达式,可以是常量、变量或表达式。

         integer_expression:正整数,指定返回的字符数。

        返回值:

         varchar或nvarchar,变长字符串。

        示例:

      select left('123456789',3)    --输出 123

      15、截取右边字符串RIGHT

         RIGHT函数用于截取从右边第一个字符开始,指定长度的字符串。其执行效果等于SUNSTRING(expression,len(expression)-length+1,length)。

         语法结构:

      right(character_expression,integer_expression)   

         参数说明: 

          character_expression:字符或二进制表达式,可以是常量、变量或表达式。

          integer_expression:正整数,指定返回的字符数。

         返回值:

          varchar或nvarchar,变长字符串。

         示例:

      select right('123456789',3)    --输出 789

      16、清除左边空格LTRIM

         如果字符串的字一个字符为空格,LTRIM函数用于清除连续的左边空格。

         语法结构:

        ltrim(character_expression)

          character_expression为字符或二进制数据表达式,可以是常量、变量或数据列。

         返回值:

          varchar或nvarchar,变长字符串。

         示例:

      select ltrim('    123456789')  --输出 123456789,注意左边的空格已被删除了,输出字符串左边是没空格的

      17、清除右边空格RTRIM

        RTRIM函数用于清空右边连续的空格。

        语法结构:

      rtrim(character_expression)

         character_expression为字符或二进制数据表达式,可以是常量、变量或数据列。

        返回值:

         varchar或nvarchar,变长字符串。

        示例:

     select rtrim('123456789   ')    --输出123456789,注意右边的空格已经被清除了

      18、转换为小写字符串LOWER

        lower函数将字符串全部转换为小写字符后返回。

        语法结构:

        lower(character_expression)

        返回值:

         varchar或nvarchar,变长字符串

        示例:

        select lower('ABCDEFG')    --输出 abcdefg 已经全部转换为小写了

      19、转换为大写字符串UPPER

        upper函数用于将字符串全部转换为大写字符后返回。

        语法结构:

      upper(character_expression)

         character_expression为字符或二进制表达式,可以是常量,变量或数据列。

        返回值:

         varchar或nvarchar,变长字符串。

        示例:

      select upper('abcdefg')    --输出 ABCDEFG 留意到已经全部转换为大写了

      20、反序字符串REVERSE

        reverse函数用于将字符串内容反序后返回。

        语法结构:

      reverse(character_expression)

        character_expression:为二进制或二进制数据表达式,可以是常量、变量或数据列。

        返回值:

         varchar或nvarchar,变长字符串

        示例:

      select reverse('123456789')    --输出 987654321 注意到顺序已经反转过来了

      21、获取字符串字节数DATALENGTH

       datalength函数用于获取字符串的字节数,而不是字符数。该函数不仅适合字符串数据,还适合文本(text、ntext)、二进制数据(varbinary、binary)和图像(image)等任意类型的数据。

       语法结构:

      datalength(expression)

        返回值:

         如果expression数据类型为varchar(max)、nvarchar(max)或varbinary(max)数据类型,则返回bigint;否则返回int。

        示例:

        select datalength('我是一个兵')    --输出 10
        select len('我是一个兵')    --输出 5
        select datalength('abcde')    --输出5
        select len('abcde')    --输出5

      22、SOUNDEX

      返回一个由四个字符组成的代码 (SOUNDEX),用于评估两个字符串的相似性。

      SELECT SOUNDEX('ABCDE')    --A120
      SELECT SOUNDEX('ABCDR') --A121

      23、REPLACE

      用另一个字符串值替换出现的所有指定字符串值。

      语法如下:

      REPLACE ( string_expression1 , string_expression2 , string_expression3 )

      参数
      string_expression1:要搜索的字符串表达式。string_expression1 可以是字符或二进制数据类型。
      string_expression2:要查找的子字符串。string_expression2 可以是字符或二进制数据类型。
      string_expression3:替换字符串。string_expression3 可以是字符或二进制数据类型。

      SELECT REPLACE('abcde','abc','xxx')    --xxxde

      24、DIFFERENCE

      返回一个整数值,指示两个字符表达式的 SOUNDEX 值之间的差异。

      SELECT DIFFERENCE('abcde','abc')    --4
  • 相关阅读:
    再谈TextField
    IOS-TextField知多少
    leftBarButtonItems
    LeftBarButtonItems,定制导航栏返回按钮
    Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法 Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法
    Unrecognized Selector Sent to Instance问题之诱敌深入关门打狗解决办法
    UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
    Present ViewController,模态详解
    UILABEL AUTOLAYOUT自动换行 版本区别
    iOS自动布局解决警告Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0
  • 原文地址:https://www.cnblogs.com/SmileSunday/p/9304622.html
Copyright © 2020-2023  润新知