一些关于Oracle的查询操作技巧

1.查询某一张表中某一个字段的最后2位是XX

select * from [table] where substr([字段], -2)='XX'

2.查询某一张表中某一个字段从第0位开始取2位的查询结果

select substr([字段],0, 2) from [table] 

3.更新某一张表中某一个字段中的X1替换为X2

update [table] set [字段]=replace([字段],'X1','X2')

4.根据年月日计算年龄的查询语句

floor(to_number(sysdate - birthday) / 365) as age
5.根据年龄段分组查询
select age, count(1) as peoplecount
  from (select case
                 when to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') >= '0' and
                      to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') < '20' then
                  '20岁以下'
               
                 when to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') >= '20' and
                      to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') <= '30' then
                  '20-30'
               
                 when to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') >= '30' and
                      to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') <= '40' then
                  '30-40'
               
                 when to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') >= '40' and
                      to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') <= '50' then
                  '40-50'
               
                 when to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') >= '50' and
                      to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') <= '60' then
                  '50-60'
               
                 when to_char(sysdate, 'yyyy') - to_char(birthday, 'yyyy') > '60' then
                  '60岁以上'
                 else
                  '其他'
               end as age
          from [table]
         where birthday is not null)
 group by age
 order by peoplecount

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值