sql 中 mod()函数取余数的基础用法
Mod(a,b)在sql中的意思是 a / b 的余数(即 a /%b )基础用法:如果id需要是偶数或者奇数时就可以使用mod。mod(id,2)=1是指id是奇数。mod(id,2)=0是指id是偶数。select mod(3,2) from dual
·
Mod(a,b) 在sql中的意思是 a / b 的余数(即 a % b )
基础用法:如果id需要是偶数或者奇数时就可以使用mod。
mod(id,2)=1 是指id是奇数。
mod(id,2)=0 是指id是偶数。
select mod(3,2) from dual
执行如图:
例如:根据身份证判定该员工是否是男女,从而实现对性别的更新。
身份证号的第17位数字,奇数为男性,偶数为女性
SEX CHAR(1) NOT NULL, --** 性别: 1 男,2 女
UPDATE table_name SET
SEX = (CASE WHEN mod(identifynumber[17],2) = '1' THEN '1' ELSE '2' end)
WHERE condition;
以上使用CASE WHER语句,还可以用decode函数。(DECODE函数用法)
例如:根据身份证号table2更新table1表员工的性别,生日,年龄。(下述使用的是Informix数据库)
update table1 set
sex = (select sex
from table2
where table2.t_id = table1.t_id
and table2.t_no = table1.t_no),
birthday = (select substr(identifynumber,7,8)
from table2
where table2.t_id = table1.t_id
and table2.t_no = table1.t_no),
age = (select year(today) from dual) - ( select year( substr(identifynumber,7,8) )
from table2
where table2.t_id = table1.t_id
and table2.t_no = table1.t_no)
where t_id = '';
更多推荐
已为社区贡献1条内容
所有评论(0)