(3)Oracle尚硅谷:单行函数

单行函数:一条记录返回一个结果;(字符函数、数值函数、日期函数、转换函数、通用函数)

多行函数:多条记录返回一个结果;

1、字符函数

lower(字段或字符串)小写; 

upper(字段或字符串)大写;

initcap(字段或字符串) 首字母大写;

concat('hello','world')——helloworld    连接;

substr('helloworld',3,4)—— llow    截取;

length('helloworld') ——10        求字符串长度;

instr('helloworld','o')——5         字符在字符串中首次出现位置;

lpad('helloworld',15,'*')——*****helloworld         不足位数左补齐;

rpad('helloworld',15,'*')——helloworld*****         不足位数右补齐;

trim('h' from 'hellohwohhrldhh')——ellohwohhrld        去除首尾;

replace('hellohwohhrldhh','h','s')——selloswossrldss'      取代所有;

2、数值函数

round(数值,小数位数)     四舍五入; 

trunc(数值,小数位数)       截断;

mod(数值,除数)       求余;

--示例代码
select round(435.45,1),round(435.45),round(435.45,-1),trunc(435.45,1),mod(908,300) from dual;
--结果 ROUND(435.45,1) ROUND(435.45) ROUND(435.45,-1) TRUNC(435.45,1) MOD(908,300) --------------- ------------- ---------------- --------------- ------------ 435.5 435 440 435.4 8

3、日期函数

 日期型数据包含:日期+时间

sysdate     当前日期时间;

months_between(日期1,日期2)     2个日期相差的月数;

add_months(日期,月数)     向指定日期加上若干月数;

next_day(日期,星期*)     指定日期的下一个星期*对应的日期;

last_day(日期)     本月的最后一天;

round( )     四舍五入; 

trunc( )       截断;

 yyyy  年             mm  月                 dd  日

day  星期            hh   小时               mi  分钟             ss  秒

4、转换函数(隐性、显性)

隐性:date——varchar2——number  系统在运行语句时自动转换

显性:to_char      to_date        to_number

 to_char中常用到的格式:

9:数字     0:零     ,:千分位    . :小数点        ¥:人民币符    $:美元符    L:本地货币符

‘999,999,999.999’      ‘L000,000,000.000’      ‘yyyy/mm/dd   day   hh/mi/ss’

--代码示例:

  select to_char(123456.78,'$999,999,999.999')

  from dual;

--123,456.780

--选择雇佣日期在1998-02-01到1998-05-01之间的员工姓名,job_id和雇佣时间

  (日期格式需严格要求'1-5月-1998',因此常将日期转化为char格式)

  select last_name,job_id,hire_date

  from employees

  where hire_date between '1-2月-1998' and '1-5月-1998';

或 where to_char(hire_date,'yyyy-mm-dd') between '1998-02-01'  and '1998-05-01';

--选择在1994年雇佣的员工的姓名和雇佣时间

  select last_name,hire_date

  from employees

  where to_char(hire_date,'yyyy')=1994;

5、通用函数

适用于任何数据类型,也适用于空值。

nvl(变量1,变量2)    将空值转换为一个已知的值;——当变量1为null时,返回变量2

nvl2(变量,变量1,变量2)  将空值转换为一个已知的值;—— 当变量不为null时,返回变量1;当为null时,返回变量2

nullif(变量1,变量2)   判断变量是否相等;—— 1=2返回null,不等返回1

6、在SQL中使用if—then—else逻辑(case、decode)

--代码示例:

--department_id  10  工资*1.1,  20  工资*1.2,  30  工资*1.3

 case department_id when 10 then salary*1.1

                                 when 20 then salary*1.2

                                 when 30 then salary*1.3  end  别名;

  当只有10,20,30时,最后可以 else salary*1.3;

 

  decode (department_id,10,salary*1.1,

                                        20,salary*1.2,

                                        30,salary*1.3)  别名;

posted @ 2022-09-17 16:48  七月安生里  阅读(24)  评论(0编辑  收藏  举报