SQLServer中mod()函数如何实现取余数
Admin 2022-08-04 群英技术资讯 2254 次浏览
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 = '';
【实例】对 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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
关于SQL中的HAVING,相信大家都不陌生,它往往与GROUP BY配合使用,为聚合操作指定条件,下面这篇文章主要给大家介绍了关于msSQL中having用处的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
这篇文章主要介绍了Filestream使用简单步骤总结,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
这篇文章主要介绍了SQL SERVER中强制类型转换cast和convert的区别详解的相关资料,需要的朋友可以参考下
这篇文章主要为大家介绍了SQLServer索引和视图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
这篇文章主要是SQl语句的练习,本文教大家如何用SQL查询语句求出用户的连续登陆天数,有需要的朋友可以借鉴参考下,希望能够有所帮助
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008