6 select语句
6.4 单行函数
单行函数:针对每一行数据都做处理,sql语句影响多少行数据就返回多少个结果。
1 upper 变大写
select first_name,upper(first_name) from s_emp;
select first_name,upper(first_name) from s_emp where id=1;
select first_name,upper(first_name) from s_emp where id<1;
为了测试单行函数—测试表—dual,是一张单行单列的表
select upper(‘hello’) from dual;
2 count
组函数:针对一组数据进行处理,无论sql语句影响多少行,都返回一个结果。
select count(id) from s_emp;
select count(id) from s_emp where id=1;
select count(id) from s_emp where id<1;
3 lower 返回变小写后的字符串
select lower(‘HELLO’) from dual;
select upper(‘hello’),lower(‘HELLO’) from dual;
4 initcap把每个单词的首字母变大写
select initcap(‘one world one dream’) from dual;
5 concat(par1,par2)连接字符串,
select concat(‘hello’,’world’) from dual;
select concat(concat(‘hello’,’world’),’hello’) from dual;
select ‘hello’||’world’||’hello’ from dual;
6 length求字符串的长度
select length(‘hello’) from dual;
7 substr(par1,par2,par3)
字符串截取函数,par1要截取的字符串,par2从一个位置开始截取,从1开始,也可以是负数,-1代表最后一个字符;par3截取多长
select substr(‘hello’,2) from dual;
select substr(‘hello’,1,2) from dual;
/*把s_emp表的first_name和first_name前三个字符列出来*/
select first_name,substr(first_name,3) firnm3 from s_emp;
/*把s_emp表的first_name和first_name后三个字符列出来*/
select first_name,-3,3) from s_emp;
nvl(par1,par2) par1和par2类型要一致
8 格式显示函数to_char(par1,par2)
par1 是要处理的字段或者数据;
par2 是格式字符串 可以省略,如果省略代表把数据变成字符串类型;
fm 格式字符串开始。
9 任意的数字
但在小数点后面就只能代表1-9(整数就不显示小数位)
0 强制显示前导零
12345 012,345.00
$ 美元符号
L 本地货币符号
, 分割符号
. 小数点
select salary,to_char(salary,’fm$099,999.99’) from s_emp;
select salary,999.00’) from s_emp;
select salary,’fmL099,999.99’) from s_emp;
9 处理数字的round 四舍五入
select round(9.76) from dual;
select round(9.49) from dual;
select round(9.76,0) from dual;
select round(9.49,0) from dual;
select round(9.76,1) from dual;
select round(9.49,1) from dual;
select round(9.49,-1) from dual;
select round(2.42,-1) from dual;
10 处理数字的trunc截取
select trunc(9.76) from dual;
select trunc(2.42) from dual;
select trunc(9.76,0) from dual;
select trunc(9.49,0) from dual;
– 9.7
select trunc(9.76,1) from dual;
/* 9.4 */
select trunc(9.49,1) from dual;
select trunc(9.49,-1) from dual;
select trunc(12.88,-1) from dual;
select trunc(1234.56,-2) from dual;(结果是1200)
11 函数嵌套:
把一个函数的返回值作为另一个函数的参数。 列出first_name和first_name的后三个字符 select first_name,length(first_name)-2,3) from s_emp; 列出s_emp id first_name manager_id,如果manager_id为NULL显示成BOSS select id,first_name,nvl(to_char(manager_id),’BOSS’) from s_emp;