SQL学习(三):greatest()和least()函数(最⼤值和最⼩值)
GREATEST和LEAST函数的语法:
GREATEST(value1, value2, ...);
LEAST(value1,value2,...);
参数可能具有混合数据类型。以下⽐较规则适⽤于这两个函数:
1. 如果任何参数为NULL,则两个函数都将⽴即返回NULL,⽽不进⾏任何⽐较。
2. 如果在INT或REAL上下⽂中使⽤函数,或者所有参数都是整数值或REAL值,那么它们将分别作为INT和REAL来⽐较。
兰石公园
3. 如果参数由数字和字符串组成,则函数将它们作为数字进⾏⽐较。
4. 如果⾄少⼀个参数是⾮⼆进制(字符)字符串,则函数将将参数作为⾮⼆进制字符串进⾏⽐较。
5. 在所有其他情况下,函数将参数作为⼆进制字符串进⾏⽐较
例:
芹菜榨汁
创建⼀个新表 test:
CREATE TABLE IF NOT EXISTS test (
company_id INT PRIMARY KEY,
q1 DECIMAL(19 , 2 ),
生产实习心得体会q2 DECIMAL(19 , 2 ),
q3 DECIMAL(19 , 2 ),
q4 DECIMAL(19 , 2 )
);
插⼊语句:
INSERT INTO test(company_id,q1,q2,q3,q4)
cad复制命令VALUES (1,100,120,110,130),
(2,250,260,300,310);
获得每个公司的最⾼和最低收⼊,可使⽤GREATEST和LOWEST:
SELECT乐论
company_id,
LEAST(q1, q2, q3, q4) low,核电站工作
救济GREATEST(q1, q2, q3, q4) high
红根菠菜
FROM
test;
结果:
±-----------±-------±-------+
| company_id | low | high |
±-----------±-------±-------+
| 1 | 100.00 | 130.00 |
| 2 | 250.00 | 310.00 |
±-----------±-------±-------+
2 rows in t
注:如果任何参数为NULL,则GREATEST和LEAST函数都返回NULL,这可能不是我们想要的。为了避免这种情况,可⽤ca when 进⾏数据的过滤,给出⼀个指定的值,也可以使⽤IFNULL函数将NULL视为零来执⾏数字⽐较。