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点。月级别为该月第一天。年级别当年第一天。
书山有路勤为径,学海无涯苦作舟