您的位置:首页 > 数据库 > > 正文

sql数值函数大全(sql中mod函数取余数的用法)

更多 时间:2021-10-04 01:41:17 类别:数据库 浏览量:541

sql数值函数大全

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
    
  • 执行如图:

    sql数值函数大全(sql中mod函数取余数的用法)

    例如:根据身份证判定该员工是否是男女,从而实现对性别的更新。
    身份证号的第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

    到此这篇关于sql中mod()函数取余数的用法的文章就介绍到这了,更多相关sql mod()取余数内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!

    标签:sql mod() 取余数
    您可能感兴趣