根据身份证号码计算星座

--1.创建函数get_xingzuo

create or replace function get_xingzuo(yr in varchar2) RETURN VARCHAR2 is xingzuo VARCHAR2(20);

dnum number(4);
dt date;
begin
  dt := to_date(yr,'MMDD');
  dnum:=to_number(to_char(dt,'MMdd'));
select case
when dnum>=1222 or dnum<=119 then '摩羯座'
when dnum>=120 and dnum<=218 then '水瓶座'
when dnum>=219 and dnum<=320 then '双鱼座'
when dnum>=321 and dnum<=420 then '牡羊座'
when dnum>=421 and dnum<=520 then '金牛座'
when dnum>=521 and dnum<=621 then '双子座'
when dnum>=622 and dnum<=722 then '巨蟹座'
when dnum>=723 and dnum<=822 then '狮子座'
when dnum>=823 and dnum<=922 then '处女座'
when dnum>=923 and dnum<=1022 then '天秤座'
when dnum>=1023 and dnum<=1121 then '天蝎座'
when dnum>=1122 and dnum<=1221 then '射手座'
end into xingzuo from dual;
return xingzuo;
EXCEPTION
   WHEN OTHERS THEN
      RETURN '双鱼座';

end;


--2.函数使用

select get_xingzuo((substr(111111199608201111, 11, 4))) xz  from dual;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值