VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > sql数据库 >
  • sql中mod()函数取余数的用法

Mod(a,b) 在sql中的意思是a/b的余数,本文详细的介绍了sql中mod()函数取余数的用法,感兴趣的小伙伴们可以参考一下

 

Mod(a,b) 在sql中的意思是 a / b 的余数(即 a % b )

基础用法:如果id需要是偶数或者奇数时就可以使用mod。

mod(id,2)=1 是指id是奇数。

mod(id,2)=0 是指id是偶数。

1

select mod(3,2) from dual

执行如图:

在这里插入图片描述

例如:根据身份证判定该员工是否是男女,从而实现对性别的更新。
身份证号的第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()函数取余数的用法的文章就介绍到这了

 

原文:https://www.jb51.net/article/213597.htm

相关教程