sql字符串函数【整理】

来源:互联网 发布:知乎国外rss 编辑:程序博客网 时间:2024/05/11 02:00

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 VARCHARTEXT 数据类型。

 

字符串操作函数

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))

 

原创粉丝点击