SQL数据库操作(2)

  • 函数rpad和lpad
向C1列左边添加0达到长度3select lpad(C1,3,'0') FROM TEST;
向c1列右边添加0达到长度3select rpad(C1,3,'0') FROM TEST;
  • 函数ltrim和rtrim
删除传入值左侧的空格SELECT LTRIM(' ABCDEFG') LTRIM FROM DUAL;
删除传入值右侧的空格SELECT RTRIM('ABCDEFG ') LTRIM FROM DUAL
  • varchar2和char的区别
varchar2char
对空格敏感对空格不敏感
  • varchar2和varchar的区别:
    如果ANSI对varchar类型定义有变化,oracle varchar2类型不变
varchar2varchar
由oracle定义由ANSI定义
  • to_char
    select to_char(BASE_COST,'L99.99') from COST;
    使用默认货币,并且以99.99(9.5还是显示成9.5)的格式显示BASE_COST
    select to_char(BASE_COST,'L00.00') from COST;
    使用默认货币,并且以00.00(9.5会补成09.50)的格式显示BASE_COST
    select to_char(BASE_COST,'$99.99') from COST;
    使用$货币,并且以99.99(9.5还是显示成9.5)的格式显示BASE_COST.
    select BASE_COST,nvl(to_char(UNIT_COST,'0.0000'),to_char('no unit csot')) from COST;
    注意,tochar中0.0000中小数点之前只能是0不能是9,当它是9时,数据时0会省略小数点之前的0.
    select to_char(sysdate,'month')from dual;
    显示当前月份

  • 日期的运算
    select sysdate+1 from dual;
    1的单位是天
    select sysdate+1/24/60*10 from dual;select sysdate+10/24/60 from dual;
    显示10分钟之后
    select sysdate+1-sysdate from dual;
    当然,结果是1,number类型
    select LOGIN_NAME,ltrim(trunc(sysdate-CREATE_DATE)) z from ACCOUNT order by z desc ;
    根据信息,可以知道第二行返回值是抹掉天数的位数的建号天数.

  • 日期函数

months_between两个日期之间相差多少个月
add_months一个日期加减一个月
next_day根据参数,出现的下一个日期(星期几)
last_day同一个月的最后一天

select add_months(sysdate,1) from dual;
一个月之后,一个月可能有28,30天,所有这个函数还是有用的.返回date
select months_between(sysdate,to_date('2000-1-1','yyyy-mm-dd')) from dual;
同上有用,返回number,差多少个月
select last_day(sysdate) from dual;
同上有用,返回当前这个月的最后一天的date.
select next_day(sysdate,1) from dual;
返回下一个星期日的date.

  • SQL语句中的分支
    分支表达式case when
    分支函数decode
    select BASE_DURATION,case when BASE_DURATION=20 then UNIT_COST+0.05 when BASE_DURATION=40 then UNIT_COST+0.03 else UNIT_COST end new_name from COST;
    case when…when…else…end
    如果没有else则会使其他值返回null.

  • decode函数
    decode(value,if1,then1,if2,then2,if3,then3,…else),表示如果value等于if1时,decode函数返回值是then1,…,如果不等于任何一个if值,则返回else,前面都不是而且没有else则返回null
    select name,decode(BASE_DURATION,20,UNIT_COST+0.04, 40 ,UNIT_COST+0.03,UNIT_COST) un from cost;

  • sbustr函数
    select substr(REAL_NAME,1,2),REAL_NAME from ACCOUNT;
    求子串,返回值是从第一个字开始,持续2个字符.

  • concat函数
    select concat(REAL_NAME,IDCARD_NO) from ACCOUNT;
    拼接函数,将REAL_NAME和IDCARD_NO拼接,相当于||

单行函数

  • 字符函数
    length upper lower initcap ltrim rtrim lpad rpad substr concat
  • 数值函数
    round trunc
  • 日期函数
    add_months months_between next_day last_day
  • 转换函数
    to_date to_char to_number
  • 一般函数
    nvl decode

表达式

  • 算术表达式 ±*/
  • 字符表达式 拼接||
  • 日期表达式 日期加减数字 两个日期相减
  • 条件表达式 case when
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值