分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
--==================================
--SQL 基础-->常用函数
--==================================
/*
一、函数的分类
SQL函数一般分为两种
单行函数 基于单行的处理,一行产生一个结果
多行函数 基于多行的处理,对多行进行汇总,多行产生结果
二、函数形式
function_name [(arg1, arg2,...)]
三、常用的单行函数:
1. 字符函数:
lower(x) 转小写
upper(x) 转大写
initcap(x) 单词首字母转大写
concat(x,y) 字符连接与| | 功能类似
substr(x,start [,length]) 取子串
格式: substr('asdfasdfasdfasddf',1,3)
length(x) 取字符串长度
lpad | rpad(x,width [,pad_string]) 字符定长,(不够长度时,左|右填充)
trim([trim_charFROM] x) 删除首部、尾部字符
格式:trim('h' from 'hello hello')
trim 默认删除方式是both
leading 只删首部 trim(leading 'h' from 'hello helloh')
trailing 只删尾部 trim(trailing 'h' from 'hello helloh')
ltrim(x[,trim_string]) 从x右边删除字符 等价于使用trailing
rtrim(x[,trim_string]) 从x左边删除字符 等价于使用leading
instr 返回子字符串在字符串中的位置
格式:instr(string,substring,position,occurence)
replace(x,search_string,replace_string) 字符替换
格式:replace('字符', '字符' ,'字符')
将字符中的字符,替换成字符
2. 数值函数:
round(x [,y]) 四舍五入
trunc(x,[,y]) 截断
mod(m,n) 求余
ceil(x) 返回特定的最小数(大于等于x的最小整数)
floor(x) 返回特定的最大数(小于等于x的最大整数)
3. 日期函数:
sysdate 返回系统当前日期
实际上ORACLE内部存储日期的格式是:世纪,年,月,日,小,分钟,秒。
不管如何输入都这样
9i开始,默认的日期格式是:DD-MON-RR,之前是DD-MON-YY
RR 和YY 都是世纪后的两位,但有区别
ORACLE的有效日期范围是:公元前年月日-年月日
RR日期格式:
1、如果当前年份最后两位是:-,并且指定年份的最后两位也为-,
则返回本世纪
例:当前年:, 01--,表示2008 年
2、如果当前年份最后两位是:-,指定年份最后两位为50-
则返回上世纪。
例:当前年:,01--,表示1998
3、如果当前年最后两位为:-,指定年份最后两位为0-,
则返回下世纪。
例:当前年:,--表示的是年
4、如果当前年最后两位是:-,指定年份最后两位为:-
则返回本世纪。
例:当前年:,--表示的是年
months_between(x,y) 两个日期之间相差的月数
例:查询最近个月入职的员工
add_months(x,y) 返回x上加上y个月后的结果
last_day(x) 返回指定日期所在月最后一天的日期
next_day(x,day) 返回指定日期的下一day的时间值,day是一个文本串,比如SATURDAY
extract 提取日期
select extract(day from sysdate) from dual
select extract(month from sysdate) from dual;
select extract(year from sysdate) from dual;
4. 转换函数:
TO_DATE(char[, 'format_model']) TO_DATE函数将一个字符串转换成日期格式
函数有个fx 修饰语。这个修饰语为TO_DATE函数的字符函
数中的独立变量和日期格式指定精确匹配.
TO_CHAR(date, 'format_model') 转换为CHAR类型,
必须与单引号一起嵌入,区分大小写,
用逗号把日期数值分开,有一个fm 移除填补空白或者阻止零开头
TO_CHAR(number, 'format_model')
TO_NUMBER(char[, 'format_model']) TO_NUMBER 函数将一个字符串转换成一个数字格式:
select to_date('1999-09-23','yyyy-mm-dd') from dual;
数据类型的转换分为隐式数据类型转换和显式数据类型转换
在表达式中, Oracle服务器能自动地转换下列各项,即隐式转换:
VARCHAR2 or CHAR =====〉NUMBER
VARCHAR2 or CHAR =====〉DATE
对表达式赋值, Oracle服务器能自动地转换下列各项,即隐式转换:
NUMBER =======〉VARCHAR2 or CHAR
DATE =======〉VARCHAR2 or CHAR
日期格式元素:
YYYY 数字年份
YEAR 英文年份
MM 数字月
MONTH 英文月
MON 英文缩写
DD 数字日
DY 英文缩写
DAY 英文
5. 通用函数
decode 条件判断
格式:decode (col|expression,search1,result1 [,search2,result2,...] [,default])
判断col|exporession的值,当search1匹配时,则返回,result1,
与search2匹配时,返回result2 ... 如果都不匹配,返回default。
select EMPNO,ENAME,JOB,SAL,
decode(job,'CLERK',SAL*1.15,'SALESMAN',SAL*1.1,SAL*1.12) NEW_SAL
FROM SCOTT.EMP;
if then else 条件判断
case 表达式
CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END