例如:select sum(qty) from sales
group by stor_id;
select substr(au_lname, 1, 5) from authors;//从au_lname中从第一个字符开始取5个字符
单行函数包括:字符函数、数字函数、日期函数、转换函数、General函数
1. lower, upper, initcap函数完成大小写的转化
initcap根据单词,将第一个字母大写,其余的都小写。initcap('SQL SERVER'); //结果为:Sql Server
例如:select lower(au_lname) , upper(au_fname), initcap(address) from authors;
2. concat:字符连接
select concat(au_lname, au_fname) from authors; //结果为:RingAlbert
substr:取字符串中的前n个字符
select substr(au_lname, 1, 5) from authors; //从左边第一个字符开始取5个字符
select substr(au_lname, -2, 3) from authors; //从右边第二个字符开始取3个字符
length:长度
instr:位置 select instr(au_lname, 'g') from authors; //字母g在au_lname的位置
lpad:左填充 select lpad(au_lname, 15, '*') //设定au_lname长度为15,如果不够就在左边填充*号
rpad:右填充
trim:压缩在字符串中出现的字符或者是字符串 select trim('h' from au_lname) from authors;
如果au_lname列中有一个'helloworld'的串,则被压缩为:elloworld
3. 数字函数
round(四舍五入), trunc(截取), mod(求余)
例如:select round(45.926, 2), trunc(45.926, 2) from dual; //2表示小数点后右边保存2位
结果为: 45.93 45,92
select mod(500, 300) from dual;
结果为:2 即求除后的余数
4. sysdate当前系统的时间
select sysdate from dual;
select (sysdate-ora_date) /7 from sales;//到目前为止已经销售了多少星期了
4.日期函数
months_between
例如:select months_between(sysdate, ora_date) from duals;//表示两者之间有多少个月
add_months:添加月份 select add_months(sysdate, 5) from duals;// 如果当前为2月,则增加后为8月
next_day next_day('01_sep_95','friday') //95年九月1号的下一个星期五是 08_sep_95
last_day('01_sep_95') //95年九月的最后一天是28_sep_95
round , trunc 如:select round(ora_date), trunc(ora_date) from sales;
5.日期与字符的转化,数字与字符的转化: to_char 、to_number、to_date
select to_char(ora_date, 'dd-mm-yyyy') from sales;
c /mm/month/
如:select to_char(qty, '$999.99') from sales; //$999.99为转换的格式
结果为:$50.32 $132.34 $44.22
6.嵌套
select length(substr(au_lname, 1, 5)) from authors;
7. 通用函数
nvl(expression1,expression2) // 当表达式1为空时,采用expression2
select nvl(address, 'not specify') from authors;// 当authors中的某些行address为空时,用'not
specify'来替换,即输出地址为not specify,而不是
输出为空
nvl2(expre1, expre2, expre3) //如果expre1不为空,则采用expre2,否则采用expre3
select nvl2(address, 'have address', 'not have address') from authors;
nullif(expre1,expre2) //如果expre1=expre2, 则返回expre1,否则返回expre1
coalesce(expre1,expre2,expre3,....) //从左至右判断,当某项不为空时,输出此项,不再向后判断