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
执⾏如图:
例如:根据⾝份证判定该员⼯是否是男⼥,从⽽实现对性别的更新。
⾝份证号的第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函数。()
例如:根据⾝份证号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)
sql中round函数怎么使用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 = '';
【实例】对 MOD(63,8)、MOD(120,10)、MOD(15.5,3) 进⾏求余运算,输⼊的 SQL 语句和执⾏结果如下所⽰。
mysql> SELECT MOD(63,8),MOD(120,10),MOD(15.5,3);
+-----------+-------------+-------------+
| MOD(63,8) | MOD(120,10) | MOD(15.5,3) |
+-----------+-------------+-------------+
| 7 | 0 | 0.5 |
+-----------+-------------+-------------+
1 row in set (0.03 sec)
由运⾏结果可知,63 除以 8 余数是 7,120 除以 10 余数是 0,15.5 除以 3 余数是 0.5
到此这篇关于sql中mod()函数取余数的⽤法的⽂章就介绍到这了,更多相关sql mod()取余数内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!