4.1SQL中可用的不同类型的函数

4.1.1定义函数

参数:0个、1个或多个

函数执行处理的细节

返回值:一个值

 

4.1.2函数类型

单行函数:函数每次只作用于数据集的一行。包括字符、数字、日期、转换函数和一般函数。

多行函数:有时称为聚合(aggregation)函数或者组(group)函数,函数每次作用于多行。

 

4.2在SELECT语句中使用字符、数字、和日期函数

4.2.1字符大小写转换函数

1.LOWER函数
LOWER(s)
只将大写字母字符转换为小写字母字符


2.UPPER函数
UPPER(s)
只将小写字母字符转换为大写字母字符


3.INITCAP函数
INITCAP(s)
将字符串中每个单词第一个字母转换为大写形式,每个单词余下的字母转换为小写形式。

 

4.2.2字符操作函数

1.CONCAT函数
CONCAT(s1, s2)
链接两个字符字面值、列或者表达式。注意隐式转换。


2.LENGTH函数
LENGTH(s)
返回组成字符串的字符数。


3.LPAD和RPAD函数
LPAD(string, length, [padstring])
RPAD(string, length, [padstring])
在源字符串左边或右边填充指定数量的字符
string:源字符串
length:返回字符串的最终长度。如果小于源串长度就返回源串的前length个字符。
padstring:用于填充的字符。


4.TRIM函数
TRIM([trailing | leading | both] trimstring from s)
从字符串的开头或结尾删除给定的字符
TRIM(s):删除两端的空格


5.INSTR函数
INSTR(source string, search string, [search start position], [nth occurrence])
给定字符串在源字符串中的位置
search start position:默认值为1,搜索开始的位置。
nth occurrence:默认值为1,第几次出现。


6.SUBSTR函数
SUBSTR(source string, start position, [number of characters to extract])
从源字符串提取指定长度的字符串


7.REPLACE函数
REPLACE(source string, search item, [replacement term])
用替代项取代源字符串中的所有搜索项
replacement term:替代项。省略该参数,则为空字符串。

 

4.2.3数字函数

1.数字ROUND函数
ROUND(source number, [decimal precision])
根据小数点精度对数值进行四舍五入
decimal precision:精度。正数,小数点右侧第(n+1)个位置:负数,小数点左侧第n个位置。


2.数字TRUNC函数
TRUNC(source number, [decimal precision])
根据小数点精度对数值进行截取运算
decimal precision:精度。正数,小数点右侧第(n+1)个位置:负数,小数点左侧第n个位置。


3.MOD函数
返回除法运算的余数
MOD(dividend, divisor)

 

4.2.4使用日期

1.数据库中的日期存储
默认的格式:DD-MON-YY

格式掩码       格式说明
-------------------------------------------------------------
DD            日
MON           月
YY            两位数的年
YYYY          四位数的年
RR            两位数的年(Year 2000-compliant)
CC            两位数的世纪
HH            包含AM和PM的小时
HH24          24小时制的时间
MI            分
SS            秒
-------------------------------------------------------------
RR可以根据当前和制定的年份来确定不同的世纪。


2.SYSDATE函数
返回数据库服务器当前的系统日期和时间


3.日期运算
Date1 - Date2 = Num1
Date1 - Num1 = Date2

两个日期之间的差值表示它们之间的天数

 

4.2.5日期函数

1.MONTHS_BETWEEN函数
MONTHS_BETWEEN(date1, date2)
返回两个日期值之间月数的数值


2.ADD_MONTHS函数
ADD_MONTHS(start date, number of months)
返回给定日期值加上指定月数的日期值。


3.NEXT_DAYS函数
NEXT_DAYS(start date, day of the week)
返回给定日期之后指定星期内日子的日期。
day fo the week:1表示星期日,2表示星期一,以此类推。


4.LAST_DAYS函数
LASH_DAYS(start date)
返回指定日期当月最后一天的日期


5.日期ROUND函数
ROUND(source date, [date precision format])
依据指定的日期精度格式对日期进行四舍五入。
date precision format:省略则精度为日(DD)。世纪(CC)、年(YYYY)、月(MM)、星期(W)、日(DD)、时(HH)、分(MI)


6.日期TRUNC函数
TRUNC(source date, [date precision format])
依据指定的日期精度格式对日期进行截取运算。
默认精度是日,截取到当日0点。月级别为该月第一天。年级别当年第一天。

 

书山有路勤为径,学海无涯苦作舟