SQL中常用字符串函数,SQL底蕴整理

--CHARINDEX 返回指定字符的位置
--2个参数,第一个是要查找的字符串 第二个参数:要搜索的字符串 参数3:开始查找的位置
--查找位置从1开始,返回结果为0时表示为结果为空

字符串函数

 

字符串函数用于对字符和二进制字符进行各种操作

SELECT CHARINDEX('bai','www.baidu.com')

ASCII

返回字符串首字母的ascii编码

select ASCII('name')

 

select ASCII(name) from xuesheng

 

select *from xuesheng where ASCII(name)>=200

 

 

 

 

SQL2000字符处理函数(包含一些常用系统函数)

1.ASCII()函数

 ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值。参数character_expression必须是一个char或varchar类型的字符串表达式。
 eg: select ASCII('s'),ASCII('sql'),ASCII('1');
执行结果如图:
字符's'的ASCII值为115,所以第一行和第二行返回结果相同,对于第三条语句中的纯数字的字符串,可以不用单引号括起来。

 图片 1

图片 2

CHAR

--将ascii代码转换成对应的字符

select CHAR(13)--回车键

 

----由郭富总结(2007-11-1)

2.CHAR()函数

 CHAR(integer_expression)函数将整数类型的ASCII值转换为对应的字符,integer_expression是一个介于0~255之间的整数。如果该整数表达式不在此范围内,将返回null值。
eg: select CHAR(115),CHAR(49);
可以看到,这里返回的值与ASCII函数的返回值正好相反.

图片 3

 

CHARINDEX

在一个表达式中搜索另一个表达式,并返回其起始位置(如果没找到,返回’0’)

select CHARINDEX('efg','abcdefgh')

 

select CHARINDEX('8',math)from xuesheng

 

一、字符转换函数
1、ASCII() 返回字符串表达式最左边的ASCII码值。
注:如果字符串表达式是纯数字,则无须单引号。 Sample:
    SELECT ASCII('ABC')
    RETURN VALUE:65
2、CHAR() 用于将ASCII 码转换为字符。
注:如果没有在0-255之间,则返回NULL。 Sample:
    SELECT CHAR(1)
    RETURN VALUE:r
    SELECT CHAR(-1)
    RETURN VALUE:NULL
3、LOWER()
Sample:    
SELECT LOWER('ABcdEF')
    RETURN VALUE:abcdef
4、UPPER()
Sample:    
SELECT UPPER('ABcdEF')
    RETURN VALUE:ABCDEF
5、STR()
Sample:    
SELECT STR(45.6600)
    RETURN VALUE:46
    SELECT STR('A')
    RETURN ERROR:
Msg 8114, Level 16, State 5, Line 1
从数据类型varchar 转换为float 时出错。

3.LEFT()函数

  LEFT(character_expression,integer_expression)函数返回字符串左边开始指定个数的字符串、字符或者二进制数据表达式。character_expression是字符串表达式,可以是常量,变量或字段。integer_expression为整数,指定character_expression将返回的字符数。 
eg: select LEFT('football',4);
 函数返回字符串“football”左边开始的长度为4的子字符串,结果为“foot”,可见索引从1开始。

图片 4

SELECT CHARINDEX('bai','www.baidu.com',10)

concat

返回作为串联两个或更多字符串值的结果的字符串类似select 'abc' 'def' 'ghi'

*2012版中使用

二、去空格函数
1、LTRIM()
Sample:    
SELECT LTRIM(' ABC')
    RETURN VALUE:ABC
2、RTRIM()
Sample:    
SELECT RTRIM('ABC ')
    RETURN VALUE:ABC

4.RIGHT()函数

 与LEFT()函数相反,RIGHT(character_expression,integer_expression)返回字符串character_expression最右边integer_expression个字符。
eg: select RIGHT('football',4);
 函数返回字符窜"football"右边开始的长度为4的字符串,结果为“ball”,索引也是从1开始的。

图片 5

图片 6

SOUNDEX

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

select SOUNDEX('abc'),soundex('abcd')

 

三、取子串函数
1、LEFT(‘STRING’,INT)
Sample:    
SELECT LEFT('ABC',2)
    RETURN VALUE:AB
2、RIGHT(‘STRING’,INT)
Sample:    
SELECT RIGHT('ABCD',2)
    RETURN VALUE:CD
3、SUBSTRING(‘STRING1’,INT,INT) SUBSTRING()函数返回部分字符串,其语法如下:
SUBSTRING (<expression>, <starting_ position>, length)
    SUBSTRING()函数返回的子串是从字符串左边第starting_ position 个字符起length个字符的部分。其中表达式可以是字符串或二进制串或含字段名的表达式。SUBSTRING()函数不能用于TEXT 和IMAGE 数据类型。
Sample:     SELECT SUBSTRING('ABCDE',2,3)
    RETURN VALUE:BCD
    SELECT SUBSTRING('ABCDE',2,10)
    RETURN VALUE:BCDE

5.LTRIM()函数

  LTRIM(character_expression)用于除去字符串左边多余的空格,字符数据表达式character_expression是一个字符串表达式,可以是常量,变量,也可以是字符字段或者二进制数据列。
eg: select '(' ' book '

  • ')', '(' LTRIM( ' book ') ')';
     对比两个值,LTRIM只删除字符串左边的空格,右边的空格不会被删除.

图片 7

 

DIFFERENCE

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

select DIFFERENCE('abc','abcd')

 

 

四、字符串比较函数
1**、CHARINDEX()**
CHARINDEX()函数返回字符串中某个指定的子串出现的开始位置,其语法如下:
CHARINDEX (<’substring_expression’>, <expression>)

6.RTRIM()函数

  RTRIM(character_expression)用于除去字符串右边多余的空格,字符数据表达式character_expression是一个字符串表达式,可以是常量,变量,也可以是字符字段或者二进制数据列。
eg:  select '(' ' book ' ')','(' RTRIM(' book ') ')';
 对比两个值,LTRIM只删除字符串右边的空格,左边的空格不会被删除.

图片 8

--LEN 返回字符串的长度
SELECT LEN('www.baidu.com')

LEFT

select LEFT('abcdef',3)

 

select LEFT(math,3)from xuesheng

 

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。
Sample:
    SELECT CHARINDEX('BC','ABCDE')
    RETURN VALUE:2
    SELECT CHARINDEX('BD','ABCDE')
    RETURN VALUE:0
2**、PATINDEX()**
PATINDEX()函数返回字符串中某个指定的子串出现的开始位置,其语法如下:
PATINDEX (<’%substring _expression%’>, <column_ name>)

7.STR()函数

 STR(float_expression [ , length [ , decimal ] ])函数用于将数值数据转换为字符数据。float_expression是一个带有小数点的近似数字(float)数据类型的表达式。length表示总长度。它包括小数点、符号、数字以及空格,默认值为10。decimal指定小数点后的位数,decimal必须小于或等于16。如果decimal大于16,则会截断结果,使其保持小数点后有16为。
eg: select STR(3141.59,6,1),STR(123.45,2,2)
 第一条语句6个数字和一个小数点组成的数值3141.59转换为长度为6的字符串,数字的小数部分舍入为1个小数位,第二条语句中的表达式超出指定的总长度时,返回的字符串为指定长度的两个**。

图片 9

图片 10

LEN

返回字符串长度,后面的空格不算

select LEN('  123   ')

 

其中子串表达式前后必须有百分号“%”否则返回值为0。

8.字符串逆序的函数REVERSE()

 REVERSE(s)将字符串s反转,返回的字符串的顺序和s的顺序相反。
 eg: select REVERSE('abc');
 由结果可以看到,字符串“abc”经过REVERSE函数处理后,所有的字符串顺序被反转,结果为“cba”;

图片 11

--LEFT/RIGHT 返回从左边/右边开始截取指定字符的长度
SELECT LEFT('www.baidu.com',3)

LOWER

将大写字母转化为小写字母

select lower('ABCDE')

 

与CHARINDEX()函数不同的是,PATINDEX()函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。
Sample:
    SELECT PATINDEX('C','ABCDE')
    RETURN VALUE:0
    SELECT PATINDEX('%C%','ABCDE')
    RETURN VALUE:3
    SELECT PATINDEX('

本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:SQL中常用字符串函数,SQL底蕴整理

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。