SQLServer中mod()函数如何实现取余数
Admin 2022-08-04 群英技术资讯 2055 次浏览
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 Server使用T-SQL语句进行批处理的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了Sql Server中实现行数据转为列显示,文章基于Sql语句的相关资料展开如何实现数据转为列显的操作过程,需要的小伙伴可以参考一下
MySQL8.0版本之后,加入了窗口函数功能,简化了数据分析工作中查询语句的书写。本文主要介绍了SQL窗口函数的使用方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
SQL SELECT INTO 语句能做什么?使用 SQL SELECT INTO 语句,您可以将信息从一个表中复制到另一个表中。SELECT INTO 语句从一个表中复制数据,然后将数据插入到另一个新表中。
这篇文章主要介绍了Windows环境下实现批量执行Sql文件的相关资料,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008