Oracle数据库 —— SQL之select语句(3) 单行函数

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’,0,2) from dual;
  select substr(‘hello’,1,2) from dual;
  /*把s_emp表的first_name和first_name前三个字符列出来*/
    select first_name,substr(first_name,1,3) firnm3 from s_emp;
  /*把s_emp表的first_name和first_name后三个字符列出来*/
    select first_name,substr(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,to_char(salary,’fm$099,999.00’) from s_emp;
  select salary,to_char(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,substr(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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值