sql中mod()函数取余数的用法
脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用
Mod(a,b) 在sql中的意思是 a / b 的余数(即 a % b )
基础用法:如果id需要是偶数或者奇数时就可以使用mod。
mod(id,2)=1 是指id是奇数。
mod(id,2)=0 是指id是偶数。
执行如图:
例如:根据身份证判定该员工是否是男女,从而实现对性别的更新。
身份证号的第17位数字,奇数为男性,偶数为女性
SEX CHAR(1) NOT NULL, --** 性别: 1 男,2 女
1 2 3 | 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数据库)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 = '' ; |
【实例】对 MOD(63,8)、MOD(120,10)、MOD(15.5,3) 进行求余运算,输入的 SQL 语句和执行结果如下所示。
1 2 3 4 5 6 7 | 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()取余数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行
这篇文章主要介绍了巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行,需要的朋友可以参考下2014-08-08浅述SQL Server的语句类别 数据库范式 系统数据库组成
本文着重讲解了SQL语句的组成以及数据库的三个范式,对系统数据库的组成进行简短的介绍。有兴趣的朋友可以看下2016-12-12
最新评论