- dual是oracle系统的一个虚表,因为查询语句必须包含select和from两个子句,当查询的内容不属于任何表时必须使用虚表;
- LOWER(列名|表达式)函数是把字符转为小写
- UPPER(列名|表达式)函数是把字符转为大写
- INITCAP(列名|表达式)函数是把每个字的头一个字母转换成大写,其他全变为小写;
- CONCAT(列名|表达式)函数是把第一个字符串和第二个字符串连接成一个字符串
- SUBSTR(列名|表达式,m,[n])函数返回指定的子串,该子串从第m个字符开始,包含这个m位置的字符,其长度为n
- LENGTH(列名|表达式)函数用于返回列或许表达式中字符串的长度。就是求这个列或许表达式的长度。
- INSTR(列名|表达式,‘字符串’,m,[n])函数用于返回所给字符串的数字位置,m表示从第m个字符开始搜索,n表示所给字符出现的次数,默认值都是1;所给字符串区分大小写,字符串表示要查找的字符;
- TRIM([leading|trailing|both]要去掉的字符FROM源字符串)函数能从“源字符串”中的头部、尾部或许头部和尾部(both)中“要去掉的字符”,没指定头或尾,默认按照(both)处理,例子为(‘f’from ‘if you are lines’),这个函数只去掉头部和尾部的,中间不作处理,both表示头尾部存在的字符都去除。
- REPLACE(正文表达式,要搜寻的字符串,替换字符串)函数用于在“正文表达式”中查找“要搜寻的字符串”,如果找到就用“替换字符串”替代,其例子为REPLACE(‘if you are happy’,‘happy’,‘cool’)
- 数字型函数
ROUND(168.888,1)=168.9,其中168.888是四舍五入的数,后面的1是代表保留的小数位数,1代表1位;
TRUNC(168.888,1)=168.8,这个后面的1是指保留多少位小数的位数;
不写都默认为0,即没小数,正数表示小数位,负数表示正数位,ROUND(168.888)=169,TRUNC(168.888)=168,ROUND(168.888,-1)=170,TRUNC(168.888,-1)=160;
- 日期型数据的处理,如果用的是中文操作系统,而数据库的字符集为美国英语,为了使日期型数据显示成我们所熟悉的,应该输入一个前提,其句子为alter session set NLS_DATE_LANGUAGE=’AMERICAN’;修改后日期的格式会变为dd-mm-yy,即日月年;
- SYSDATE是数据库系统日期函数,返回的是当前系统时间,格式为dd-mm-yy,如30-07-18;这个表示18年的7月30号;Oracle9i版本开始后日期格式变为DD-MM-RR;这个点需要特别注意,当yy查询不出数据的时候把日期格式的yy改为rr;
- TO_DATE函数用于把字符串转成日期型数据;
- MONTHS_BETWEEN(日期1,日期2)函数用于返回两个日期间的月数,日期1大于日期2返回的是正数,否则返回的是负数;
- ADD_MONTHS(日期,n)函数表示把n个月加到日期上;
- NEXT_DAY(日期,字符串)函数用于返回下一个由字符串(星期几)指定的日期,例如今天星期一,日期是2014.7.30,如果用这个函数查找下一个星期一的话,则日期是208.6号;
- LAST_DAY(日期)函数用于返回该日期所在月的最后一天,例如是2018年7月1号,则调用这个函数的结果为2018年7月31号;
- ROUND函数中的日期显示都是字符串,要用ROUND函数必须要调用TO_DATE函数转换成日期之后才可以使用ROUND函数,TRUNC同理