字符串函数
- 1. 概述
- 2. ASCII 函数
- 3. Charindex 函数
- 4. Left 函数
- 5. Right 函数
- 6. Len 函数
- 7. Replace 函数
- 8. Reverse 函数
- 9. Str 函数
- 10. Substring 函数
1. 概述
用字符串函数能对输入字符串进行类型转换和长度设置等操作,是数据库处理中常用的函数类型;
2. ASCII 函数
ASCII(获取 ASCII 码)函数
用于返回字符串最左侧的 ASCII 代码值;
ASCII 函数语法格式为:
ASCII(character_expression)
charracter_expression 为 char 或 varchar 类型的表达式,函数返回值为 int;
例子 1:将 ‘BAC’ 三个字母分别转换为 ASCII 码
select ASCII(Left('BAC',1)) as 'B',
ASCII(substring('BAC',2,1)) as 'A',
ASCII(substring('BAC',3,1)) as 'C'
3. Charindex 函数
Charindex 函数
用于返回字符串中指定的表达式的起始位置;
Charindex 函数的语法为:
Charindex(expressionToFin,expressionToSearch[,start_location])
参数 expressionToFind 包含要查找的字符串;
参数 expressionToSearch 为要查找字符串的表达式;
参数 srtar_location 表示查找的起始位置,若未指定 start_location,或该参数为负数或 0,就从头开始搜索;
若为找到字符串,就返回字符串的位置,否则返回 0;
例子 2:用 Charindex 函数查找字符在表达式的所处的位置
select CHARINDEX('teac','I am teacher!!'),CHARINDEX('2019','SQL Server 2008')
4. Left 函数
Left 函数
用来返回字符串中从左开始指定个数的字符;
Left 函数的语法格式为:
Left(character_expression,integer_expression)
character_expression 为字符或二进制数据的表达式,可以为常量、变量或列;
character_expression 可以为任何能够隐式转换为 varchar 或 nvarchar 的数据类型,text 或 ntext 除外;
否则,需要使用 CAST 函数对 character_expression 进行显式转换;
integer_expression 必须为正整数,指定 character_expression 将返回的字符数;
5. Right 函数
Right 函数
用于返回字符串中从右边开始指定个数字符;
Right 函数的语法格式为:
Right(character_expression,integer_expression)
character_expression 为字符或二进制数据表达式,可以为常量、变量或列;
character_expression 可以为任何能够隐式转换为 varchar 或 nvarchar 的数据类型,text 或 ntext 除外;否则,需要使用 CAST 函数对 character_expression 进行显式转换;
integer_expression 必须为正整数,指定 character_expression 将返回的字符数;
6. Len 函数
Len 函数
返回指定字符串表达式的字符数,其中不包括含尾随空格;
该函数返回的字符数非字节数,单字节与双字节的字符返回相同的值;
若需要返回字节数,可参考 Datalength 函数;
Len 函数的语法格式为:
Len(string_expression)
string_expression 为计算的字符串表达式;
例子 3:用 Len 函数计算字符串长度
select LEN('我是一名教师tea')
select DATALENGTH('我是一名教师tea')
第一句表达式中 “我是一名教师” 的长度为 6;
第二句表达式中 “我是一名教师” 的长度是 12;还会计算字符串中的空格长度;
注意 : Len 函数 返回的是字符数,即英文字符和中文字符俊返回相同的值,若获取字符串的字节数,应使用 Datalength 函数;
7. Replace 函数
Replace 函数用于使用另一个字符串替换指定字符串;
Replace 函数的语法格式为:
Replace(string_expression,string_pattern,string_replacement)
string_expression 为要搜索的字符串表达式,sting_pattern 为要查询的子字符串,string_replacement 为要替换字符串;
例子 4:用 Replace 函数将字符串 “我是一名学生” 中的 “学生” 替换为 “教师”
select '我是一名学生' as '使用函数前',
REPLACE('我是一名学生','学生','教师') as '使用函数后'
8. Reverse 函数
Reverse 函数返回字符串的逆序;
Reverse 函数的语法格式为:
Reverse(string_expression)
string_expression 是字符串或二进制数据类型的表达式;
string_expression 可以为常量、变量,也可是字符或二进制数据列;
例子 5:用 Reverse 函数逆向输出字符串“School&Teacher”
select REVERSE('School&Teacher') as 'Reverse 函数'
9. Str 函数
Str 函数
将数字数据转换为字符数据;
Str 函数的语法格式为:
Str(float_expression[,legth[,decimal]])
参数 float_expression 为带小数点的近似数字(float)数据类型的表达式;
参数 length 为总长度,包括小数点、符号、数字和空格,默认值为 10;
参数 decimal 为小数点右边的小数位数;
参数 length 和 decimal 值应是整数;
例子 6:用 Str 函数输出命名和年龄
select Name+'今年多少岁'+STR(Age)+'岁'
from B
注意: Str 函数的功能由 cast 或 Convert 函数实现,但在使用 Cast 或 Convert 实现类型转换时需要指定字符长度,否则 SQL 将长度设置为30;
10. Substring 函数
Substring 函数
返回字符、二进制、文本或图像表达式的一部分;
Substing 函数的语法格式为:
Substring(expression,start,length)
参数 expression 是character、binary、text、next 或 image 表达式,参数 start 指定返回字符的起始位置,length 指定要返回的字符数;
若参数 expression 是其中一个受支持的字符数据类型,就返回字符数据;如 expression 是支持的 binary 数据类型中的一种数据类型,就返回二进制数据;
例子 7:用 Substring 函数获取字符串的子串
select SUBSTRING('I am Teacher!',3,4)
例子 8:用 Substring 函数获取课程名称(课程保留4个汉字)
select CNo,SUBSTRING(CN,1,4) as '课程'
from C