稀土掘金 稀土掘金

SQL 中MOD()函数的介绍及使用

SQL MOD()

SQL MOD()简介

标准查询语言(SQL)中的MOD函数接受两个数字数据类型的参数,第一个参数为红利,第二个参数为除数,并在进行除法操作或重复减法后返回余数或模数。它与REMAINDER和FLOOR函数类似。

MOD()的基本功能是基于下面的代数表达式。

m - n*(FLOOR(m/n));

除了ORACLE数据库,大多数SQL数据库都使用上述表达式。

在不支持MOD()函数的数据库中,特别是SQL Server和Azure SQL数据库,我们可以使用'%'百分比符号。它执行同样的功能。

语法和参数

编写MOD()函数的基本语法如下。

MOD(argument_1,argument_2);

我们甚至可以在一些MOD不是内置函数的数据库中使用以下语法。

Argument_1 % Argument_2;

上述语法中使用的参数如下。

  • Argument_1:需要除以的数字数据值或表达式。它是经典数学中的红利。
  • 参数2:除以第一个参数的数字数据值或表达式。它是经典数学中的除数。

MOD()函数可以作为任何SQL语句或子句的一部分使用,如SELECT, WHERE, HAVING等。

例子

下面是几个查询示例,说明SQL MOD()函数在不同情况下的使用,如完全可除参数、浮点、双倍数据类型、负数等。

例子#1

用SQL查询来说明SQL MOD()函数的基本功能。

SELECT MOD(20,2);

SQL MOD() 1

当我们用20除以2时,得到的余数是0,因为20完全可以被2整除,该函数也是如此。

SELECT MOD(98,3);

SQL MOD() 2

给定的查询返回98除以3得到的余数,即2。

SELECT MOD(45,3.2);

SQL MOD() 3

即使当我们除以浮点或双倍数据类型的值时,MOD也会返回余数。这是因为MOD执行重复减法并达到所需的余数。

代码。

SELECT MOD(25.5,2);

SQL MOD() 4

SELECT MOD(51.0,25.5);

SQL MOD() 5

SELECT MOD(19,-4);

SQL MOD() 6

SELECT MOD(-19,4);

SQL MOD() 7

SELECT MOD(0,12);

SQL MOD() 8

SELECT MOD(12,0);

SQL MOD() 9

大多数SQL数据库服务器在试图找到一个整数值和0的MOD时都会出错,而像Oracle这样的数据库服务器会返回第一个参数或红利。

在讨论了SQL MOD()函数的基本功能之后,让我们尝试一下它的一些使用案例。

为了演示MOD()的可用性,让我们首先创建一个 "sales_details "表,该表包含了与公司每个销售员的销售有关的详细信息。该表的代码片段看起来像这样。

代码。

CREATE TABLE sales_details
(
salesperson_id integer NOT NULL,
salesperson character varying(255) NOT NULL,
store_state character varying(255) NOT NULL,
sales_target numeric NOT NULL,
sales_current numeric NOT NULL
);

create Table 1

在成功创建了sales_details表之后。现在让我们在其中插入一些随机记录,以便在例子中使用。我们可以使用下面的代码片段来执行这项任务。

代码。

INSERT INTO sales_details
(salesperson_id
,salesperson
,store_state
,sales_target
,sales_current)
VALUES
(101,'Danish K','KA',10000,10000),
(102,'Rashmi Sharma','DL',23000,18000),
(103,'Mohak Patel','MH',21000,21000),
(104,'Devika Ramaswamy','TN',10000,8000),
(105,'Reema Ray','WB',0,10000);

insert table

在插入操作之后,最终的sales_details表看起来是这样的。

SELECT * FROM public.sales_details

select table

例子#2

计算所有销售人员的目标和当前销售状态的比率的余数。

代码。

SELECT salesperson_id,
salesperson,
store_state,
sales_target,
sales_current,
MOD(sales_target,sales_current) as "Sales Ratio"
FROM sales_details;

select table 1

例子 #3

找到目标销售额和当前销售额之比的剩余部分小于2000美元的销售人员的详细信息。

代码。

SELECT salesperson_id,
salesperson,
store_state,
sales_target,
sales_current
FROM sales_details
WHERE MOD(sales_target,sales_current) < 2000;

select table 2

例子 #4

假设公司想把销售人员根据他们的ID分成两组,分别是A组和B组。如果一个销售人员的ID是奇数,他/她就属于团队A,否则就属于团队B。

代码。

SELECT salesperson_id, salesperson, store_state,
CASE MOD(salesperson_id, 2)
WHEN 0 THEN 'TEAM B'
ELSE 'TEAM A'
END AS team
FROM sales_details;

select table 3

例子 #5

计算两个团队中每个团队的销售人员的数量。

代码。

SELECT
CASE MOD(salesperson_id, 2)
WHEN 0 THEN 'Team B'
ELSE 'Team A'
END AS team,
COUNT(salesperson_id)
FROM
sales_details
GROUP BY team;

select table 4

例子 #6

假设公司想把它的销售人员根据他们的ID分别分成三个小组A组、B组和C组。设计一个策略来划分销售人员。

代码。

SELECT salesperson_id, salesperson, store_state,
CASE MOD(salesperson_id, 3)
WHEN 0 THEN 'TEAM A'
WHEN 1 THEN 'TEAM B'
ELSE 'TEAM C'
END AS team
FROM sales_details;

example 7

例子 #7

计算三个团队中每个团队的销售人员的数量。

代码:例7

SELECT
CASE MOD(salesperson_id, 3)
WHEN 0 THEN 'Team A'
WHEN 1 THEN 'Team B'
ELSE 'Team C'
END AS team,
COUNT(salesperson_id)
FROM
sales_details
GROUP BY team;

example 8

结论

SQL MOD()函数返回一个数字数据值除以另一个数字数据值的余数或模数。

两个鬼故事中国好声音下载起个红酒商标名称英雄攻城男生电影天堂阿菀姓冯男宝起名建设公司起名用字大全梦幻起名农业科技公司起名大全集k753九画的起名吉利字女孩宋词起名 女宝名字色戒未删减版在线观看完整包姓男起名友情留言板留言大全艾草仙姑南字起名5月27日是什么星座李姓双胞胎女孩起名字姓覃100分男孩起名美丽的秋天作文静电绝缘成就怎么做水电暖公司起名大全股票002490城起名psp合金弹头xx冰与火之歌小说下载女儿取名起名大全姓甘起名2画最吉祥的字她们的流仪少年生前被连续抽血16次?多部门介入两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”淀粉肠小王子日销售额涨超10倍高中生被打伤下体休学 邯郸通报单亲妈妈陷入热恋 14岁儿子报警何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言张家界的山上“长”满了韩国人?男孩8年未见母亲被告知被遗忘中国拥有亿元资产的家庭达13.3万户19岁小伙救下5人后溺亡 多方发声315晚会后胖东来又人满为患了张立群任西安交通大学校长“重生之我在北大当嫡校长”男子被猫抓伤后确诊“猫抓病”测试车高速逃费 小米:已补缴周杰伦一审败诉网易网友洛杉矶偶遇贾玲今日春分倪萍分享减重40斤方法七年后宇文玥被薅头发捞上岸许家印被限制高消费萧美琴窜访捷克 外交部回应联合利华开始重组专访95后高颜值猪保姆胖东来员工每周单休无小长假男子被流浪猫绊倒 投喂者赔24万小米汽车超级工厂正式揭幕黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发当地回应沈阳致3死车祸车主疑毒驾恒大被罚41.75亿到底怎么缴妈妈回应孩子在校撞护栏坠楼外国人感慨凌晨的中国很安全杨倩无缘巴黎奥运校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变王树国卸任西安交大校长 师生送别手机成瘾是影响睡眠质量重要因素国产伟哥去年销售近13亿阿根廷将发行1万与2万面值的纸币兔狲“狲大娘”因病死亡遭遇山火的松茸之乡“开封王婆”爆火:促成四五十对奥巴马现身唐宁街 黑色着装引猜测考生莫言也上北大硕士复试名单了德国打算提及普京时仅用姓名天水麻辣烫把捣辣椒大爷累坏了

两个鬼故事 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化