1.字符串函数
datalength(Char_expr) 返回字符串包含的字符数,但不包含后面的空格
len('sde123-TRE')=10(返回给定字符串的长度)
字符转换函数
1.ascii('a')=97---返回字母a对应的ASCII码
char('48')=0---返回48这个ASCII码对应的字符
2.lcase('ABcdE')="abced" 或lower('ABcdE')="abced" 将给定字符串转为小写
ucase ('Ac')="AC" 或 upper('ABcdE')="ABCDE"将给定字符串转为大写
3.str(123.457,5,2)="123.46" 将数字转为字符串,第一个参数是要转换的数字,第二个参数是转换后的字符串的最大长度,第三个参数指定保留几位小数,请注意,这种转换是四舍五入的
空格函数
1.space(int_expr) 生成int_expr个空格
2.ltrim(' fgf gh ')="fgf gh "(去掉给定字符串左边的空格)
rtrim(' fgf gh ')=" fgf gh"(去掉给定字符串右边的空格)
取子串函数
1.substring(expression,start,length)取子串
2.right(char_expr,int_expr) 返回字符串右边int_expr个字符
left('sde123-TRE',5)="sde12" 从给定字符串左边开始,取指定长度的字符
字符串比较函数
1. charindex('TRE','DFTRE345TREDGS',4)=9 返回第一个字符串在第二个字符串中出现的首位置,如果未出现则返回0,第三个参数表示从第几位开始找,可不写。
2. PATINDEX (<’%substring _expression%’>, <column_ name>)返回字符串中某个指定的子串出现的开始位置。其中子串表达式前后必须有百分号“%”否则返回值为0。
与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。
字符串操作函数
1. replicate(char_expr,int_expr)复制字符串int_expr次
2. reverse(char_expr) 反转字符串
3. replace('abcdefghicde','cde','xx')="abxxfghixx" 用第三个字符串替换第一个 字符串中的所有第二个字符串
4. stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从 start开始的length个字符用char_expr2代替
5. quotename() 返回被特定字符括起来的字符串。
=============================================
实例
1. select 字段1 from 表1 where charindex('云',字段1)=1;
返回表1中字段1=“云”的位置。
2.比如有一个表,名字叫 index
有一个动态查询,参数是表名
declare @tbname varchar(256)
set @tbname='index'
---查这个表里的数据:
print('select * from '+@tbname)
exec('select * from '+@tbname)
--这样print出来的数据是
select * from index
因为index是字键字,肯定出错,加上括号就可以了:
select * from [index]
这便有了QUOTENAME,即:
print('select * from '+QUOTENAME(@tbname))
--结果:select * from [index]
exec('select * from '+QUOTENAME(@tbname))