SQL系统函数

1.with...as...

说明:把一大堆重复用到的SQL语句放在with as里面,取一个别名,后面查询就可以直接用它,这样对于大批量的SQL数据起到一个优化的作用,而且清楚明了。

eg:

with a as (select * from test)
select * from a

2.case when then

 说明:case具有两种格式,简单case函数和case搜索函数

a.简单case函数

eg:

case sex
when '1' then ''
when '2' then ''
else '其他' 
end

b.case搜索函数

eg:

case when sex='1' then ''
     when sex='2' then ''
else '其他' 
end

3.stuff

说明:删除指定长度的字符,并在指定的起点处插入另一组字符

语法格式:stuff(expression,start,length,expression)

eg:

//在第一个字符串abcdef中删除从第2个位置(字符b)开始的3个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。
select
stuff('abcdef',2,3,'ijklmn')
结果集:aijklmnef

 4.replace

说明:用第三个表达式替换第一个字符表达式中出现的所有第二个指定字符串表达式的匹配项

语法格式: replace('string_expression1','string_expression2','string_expression3')

eg:

//使用xxx替换abcdefghicde中的cde
select
replace('abcdefghicde','cde','xxx')
结果集: abxxxfghixxx

5.space

说明:生成任意多个空格组成的字符串

语法格式:space('integer_expression')  //integer_expression:指示空格个数的正整数

eg:

select ('hello' + space(5) + 'world')
结果集:hello world

6.replicate

说明:可以按照指定的整数次数,重复生成一个字符串形式的表达式,结果为字符串

语法格式:replicate('字符串','次数')

eg:

select replicate('hello',5)
结果集:hellohellohellohellohello

7.substring

说明:对字符串进行字串的截取操作

语法格式:substring('表达式','开始的位置','长度')

eg:

select substring('hello',1,2)//第一个字符从1开始
结果集:he

8.len

说明:用于获取字符串的长度(字符数),但不包括右边的空格,包括左边的空格

语法格式:len('字符串')

eg:

select len('天下之大,无奇不有')
结果集:9

 9.charIndex

说明:用于在指定的字符串中搜索特定的字符串,并可以指定开始搜索的位置,返回第一次找到目标字符串的字符数

语法格式:charindex('要查找的字符序列1','指定序列搜索的列2[ ,'开始在2中搜1的字符位置']')

eg:

select charindex('456','123456789')
select charindex('456','123456789',4)
结果集:都是4

10.left和right

说明:截取从左/右边第一个自负开始,指定长度的字符串

语法格式:left/right('要截取的字符串','长度')

eg:

select left('123456789',3)
select right('123456789',3)
结果集:123
789

11.ltrim和rtrim

说明:清除左/右边空格

语法格式:ltrim/rtrim('字符串')

eg:

select ltrim('   123456789')
select rtrim('123456789   ')
结果集:123456789

12.lower和upper

说明:将字符串全部转换成小写/大写后返回

语法格式:lower/upper('字符串')

eg:

select lower('ABC')
select upper('abc')
结果集:abc
ABC

13.reverse

说明:将字符串内容反序后返回

语法格式:reverse('字符串')

eg:

select reverse('123456789')
结果集:987654321

 

posted @ 2015-11-12 15:52  na微微一笑很倾城  阅读(400)  评论(0编辑  收藏  举报