zoukankan      html  css  js  c++  java
  • sql server 字符串函数大全

    平常会用到一些函数处理字符串,用的不算频繁,所以每次用到的时候就忘记了,这次在网上找了一篇文档,担心突然某一天这篇文章找不到了,然后就把文章的内容复制了一份:

    /* 
    1,ASCII返回字符表达式中最左侧字符的ASCII代码值
    仅返回首字母的ASCII码值
    parameter    char或varchar
    returns        integer
     */
    SELECT ASCII('a') --97
    SELECT ASCII('A') --65
    SELECT ASCII('aA') --97
    SELECT ASCII('0') --48
    SELECT ASCII('01') --48
    /* 
    2,CHAR将整数ASCII代码转换为字符
    parameter    TINYINT
    returns        char(1)
     */
    SELECT CHAR(97)--a
    SELECT CHAR(65)--A
    --SELECT CHAR('A')--在将 varchar'A' 转换成数据类型 int 时失败。
    /*
    3,CHARINDEX返回表达式中指定字符的开始位置
    parameter
        搜索表达式varchar
        要搜索的表达式varchar
        开始位置bigint
    returns integer|bigint
    其中第三个参数仅影响查询开始位置,不会影响返回结果
    例如,需要忽略前50个字符,从第50个字符往后开始查找,并返回位置即可使用该参数
    默认从位置1处开始查询
    */
    SELECT CHARINDEX('b','abcdefg',0)--2
    SELECT CHARINDEX('b','abcdefg',1)--2
    SELECT CHARINDEX('b','abcdefg',2)--2
    SELECT CHARINDEX('b','abcdefg',3)--0
    /*
    4,DIFFERENCE以整数返回两个字符表达式的SOUNDEX值之差
    parameter    表达式varchar
    parameter    表达式varchar
    SOUNDEX是一种语音算法,利用英文字的读音计算近似值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,可用Soundex做类似模糊匹配的效果。
    http://zh.wikipedia.org/zh-cn/Soundex
    */
    SELECT DIFFERENCE('bet','bit')--3
    /*
    5,LEFT返回字符表达式最左侧指定数目的字符
    parameter    表达式varchar|nvarchar
                字符数integer
    returns        varchar|nvarchar
    */
    SELECT LEFT('abcdefg',1)--a
    SELECT LEFT('abcdefg',2)--ab
    SELECT LEFT('abcdefg',3)--abc
    SELECT LEFT('abcdefg',1000)--abcdefg
    --SELECT LEFT('abcdefg',-2)--传递到 left 函数的长度参数无效。
    SELECT LEFT('abcdefg',0)--''
    /* 
    6,LEN返回给定字符串表达的字符数
    parameter    表达式varchar|nvarchar
    returns        integer|bigint
    */
    SELECT LEN('abcdefg')--7
    SELECT LEN(N'abcdefg')--7
    SELECT LEN('')--0
    SELECT LEN('中国人')--3
    /*
    7,LOWER返回将大写字符转换为小字符的字符表达式
    parameter    表达式varchar|nvarchar
    returns        varchar|nvarchar
    */
    SELECT LOWER('ABCDEFG')--abcdefg
    SELECT LOWER('中国人')--中国人
    /*
    8,LTRIM返回删除了前导空格之后字符表达式
    parameter    表达式varchar|nvarchar
    returns        varchar|nvarchar
    */
    SELECT LTRIM('   abcdefg')--abcdefg
     
    /* 
    9,NCHAR返回具有给定的整数代码的UNICODE字符
    parameter    integer
    returns        nchar(1)
    */
    SELECT NCHAR(65)--A
    SELECT NCHAR(-65)--NULL
    SELECT NCHAR(-66)--NULL
    /*
    10,PATINDEX返回指定表达式中模式第一次出现的开始位置
    parameter    搜索模式文字varchar|nvarchar
                要搜索的表达式varchar|nvarchar
    returns        integer|bigint    
    */
    SELECT PATINDEX('%_cd%','abcdefg')--2
    /*
    11,QUOTENAME返回为成为有效的SQL SERVER分隔标识符而添加了分隔符的UNICODE字符串
    parameter    表达式nvarchar(128)
                (可选)引号字符char(1)
    returns        nvarchar(258)
    */
    SELECT QUOTENAME('CREATE TABLE')--[CREATE TABLE]
    SELECT QUOTENAME('a')--[a]
    /*
    12,REPLACE用第三个表达式替换第一个表达式中出现的第二个表达式
    parameter    要搜索的表达式varchar|nvarchar
                搜索表达式varchar|nvarchar
                替换表达式varchar|nvarchar
    returns        varchar|nvarchar
    */
    SELECT REPLACE('abcdefg','cd','0')--ab0efg
    SELECT REPLACE('abcdefg','cd','')--abefg
    /* 
    13,REPLICATE按指定次数重复表达式 
    parameter    表达式varchar|nvarchar
                表达式bigint
    returns        varchar|nvarchar
    */
    SELECT REPLICATE('a',4)--aaaa
    SELECT REPLICATE('abc|',4)--abc|abc|abc|abc|
    /* 
    14,REVERSE返回字符表达式的逆向表达式
    parameter    表达式varchar|nvarchar
    returns        varchar|nvarchar
    */
    SELECT REVERSE('ABC')--CBA
    SELECT REVERSE('ABa')--aBA
    /* 
    15,RIGHT返回字符表达式右侧指定数目的字符
    parameter    表达式varchar|nvarchar
                表达式bigint
    returns        varchar|nvarchar
    !类似LEFT函数
    */
    SELECT RIGHT('abcd',3)--bcd
     
    /*
    16,RTRIM返回截断了所有尾随空格之后的字符表达式
    parameter    表达式varchar|nvarchar
    returns        varchar|nvarchar
    */
    SELECT RTRIM('ABCD    ')--ABCD
    /*
    17,SOUNDEX返回由四个字符表达的SOUNDEX代码
    parameter    表达式varchar
    returns        varchar
    !参考DIFFERENCE函数
    */
    SELECT SOUNDEX('ABCD')--A120
    SELECT SOUNDEX('hello')--A120
    /*
    18,SPACE返回由重复空格组成的字符串 
    parameter    表达式integer
    returns        char
    */
    SELECT SPACE(10)--[          ]
    SELECT LEN(SPACE(10))--0
     
    /*
    19,STR返回从默认表达转换而来的字符串
    parameter    表达式float
                (可选)长度integer,default
                (可选)小数位数integer,default
    returns        char
    */
    SELECT STR(100)--[       100]
    SELECT STR(100,10,2)--[    100.00]
    SELECT STR(100.66666,10,2)--[    100.67]
    SELECT LTRIM(STR(100.66666,10,2))--[100.67]
    SELECT STR(100.66666,10)--[       101]
     
    /* 
    20,STUFF删除指定长度的字符,并在指定的起点处插入另一组字符
    parameter    要搜索的表达式varchar|nvarchar|varbinary
                开始位置bigint
                字符数bigint
                替换表达式varchar|nvarchar|varbinary
    returns        varchar|nvarchar|varbinary
    */
    SELECT STUFF('abcd',1,4,'1')--1
    SELECT STUFF('abcd',2,4,'1')--a1
    SELECT STUFF('abcd',2,3,'1')--a1
    SELECT STUFF('abcd',3,4,'1')--ab1
    SELECT STUFF('abcd',4,4,'1')--abc1
    SELECT STUFF('abcd',5,4,'1')--NULL
    SELECT STUFF('abcd',1,1,'1')--1bcd
    SELECT STUFF('abcd',1,2,'1')--1cd
    SELECT STUFF('abcd',1,3,'1')--1d
    SELECT STUFF('abcd',1,4,'1')--1
    SELECT STUFF('abcd',1,5,'1')--1
    SELECT STUFF('abcd',1,500,'1')--1
     
    SELECT STUFF('abcdefg',2,4,'xxx')--axxxfg
    /* 
    21,SUBSTRING返回字符表达式,二进制,文本表达式或图像表达的一部分
    parameter    表达式varchar|nvarchar|text|ntext|varbinary|image
                开始位置bigint
                长度bigint
    returns        varchar|nvarchar|text|ntext|varbinary|image
    */
    SELECT SUBSTRING('abcd',1,1)--a
    SELECT SUBSTRING('abcd',2,1)--b
    SELECT SUBSTRING('abcd',3,1)--c
    SELECT SUBSTRING('abcd',4,1)--d
    SELECT SUBSTRING('abcd',1,1)--a
    SELECT SUBSTRING('abcd',1,2)--ab
    SELECT SUBSTRING('abcd',1,3)--abc
    SELECT SUBSTRING('abcd',1,4)--abcd
    SELECT SUBSTRING('abcdefg',2,3)--bcd
    /* 
    22,UNICODE返回表达第一个字符的UNICODE整数值
    parameter    表达式nvarchar
    returns        integer
    !仅返回首字符
    */
    SELECT UNICODE('a')--97
    SELECT UNICODE('中国人')--20013
    SELECT UNICODE('中国')--20013
    SELECT UNICODE('中')--20013
    /* 
    23,UPPER返回将小写字符转换为大写字符的字符表达式
    parameter    表达式varchar|nvarchar
    returns        varchar|nvarchar
    */
    SELECT UPPER('a')--'A'

  • 相关阅读:
    git 撤销更改的文件
    git基于某个分支创建分支
    nodejs 支付宝app支付
    windows提交代码到git仓库
    MongoError: Cannot update '__v' and '__v' at the same time,错误解决办法
    作业3.输入一个年份,判断是闰年还是平年
    作业2.判断一元二次方向根的情况
    求3个数中的最大数
    语句
    运算符
  • 原文地址:https://www.cnblogs.com/andysd/p/3396751.html
Copyright © 2011-2022 走看看