SQL函数
可移植(portable) 所编写的代码可以在多个系统上运行。
为了代码的可移植,许多SQL程序员不赞成使用特殊实现的功能。虽然这样做很有好处,但不总是利于应用程序的性能。如果不使用这些函数,编写某些应用程序代码会很艰难。必须利用其他方法来实现DBMS非常有效地完成的工作。
文本处理函数
1.字母大小写相关函数(lower、upper、initcap)
语法:LOWER(string)
功能:将输入的字符串全部转换成小写
语法:UPPER(string)
功能:将输入的字符串全部转换成大写
语法:INITCAP(string)
功能:将输入的字符串单词的首字母转换成大写。
PS:在INITCAP中,如果不是两个字母连在一起,则认为是新的单词,例:a_b a,b a b 类似前面这些情况,都a和b都会转换成大写。
2.字符串连接函数(concat)
语法:CONCAT(string,string)
功能:将两个字符串用||连接起来结果一样,除此之外还可以使用Concat函数来连接字符串。
3.填充函数(lpad、rpad)
语法:LPAD(string1,n[,string2])
功能:返回n个字符的string1字符,不够的左端填充sring2,如果没有string2则用空格填充。
语法:RPAD(string1,n[,string2])
功能:返回n个字符的string1字符,不够的右端填充sring2,如果没有string2则用空格填充。
4.边界处理类函数(ltrim、rtrim、trim)
语法:*LTRIM(string[,x]):
功能:返回去除左边含有字符x的string,如果无此参数则去除空格,如果是两个字符以上如’ab’则去除边界是a或者b的字符。(rtrim(‘慕尼黑’,‘黑尼’) → 慕)
语法:RTRIM(string[,x])
功能:返回去除右边含有字符x的string,如果无此参数则去除空格,如果是两个字符以上如’ab’则去除边界是a或者b的字符。
语法:TRIM( [ [leading | trailing | both] trim_char from string ])
功能:返回从字符串String中删除指定的字符trim_char(必须单个字符),如果无此参数则去除左右空格。
注:
参数:
leading:从字符串的头开始删除。
trailing:从字符串的尾部开始删除。
borth:从字符串的两边删除。
5.其他类相关函数(length、substr、instr、replace,chr、ascii)
语法:LENGTH(sring)
功能:该函数很简单,就是告诉用户一个字符串有多长,即字符串中有多少个字符。
语法:SUBSTR(string,start [,count])
功能:该函数告诉oracle提取出string一个子集,start开始位置,count提取长度,不指定count时,默认提取到该字符串的尾部。
start同时也可以指定为负数,指定为正数的时候是从字符串的起始位置开始算(左边),指定负数时,是从末尾位置算(右边)。
注意:负数不能使用于Char数据类型,因为Char是固定长度的, 所以将使用空格填充他们的值,直到扩展到列的全长。
语法:INSTR(string,set[,start [,occurrence ] ] )
功能:如果指定start,oracle则跳过前面所有字符串到该位置开始搜索,occurence:是强迫instr跳过前几次与字符串匹配,给出下一次匹配的位置,如果occurence指定3,那就是匹配第三次的位置了。
例子:instr(‘ABACAAA’,‘A’,2,2) 从ABACAAA中匹配A这个字符串,从2个位置开始匹配,匹配第2次A所在的位置。
Chr和ascii函数在即席查询中很少使用。Chr把数值转换成等价的ascii字符串,ascii作用正好相反。
语法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。