Php 三列-使用SQL获取最大值
我有一张桌子: 评级:Php 三列-使用SQL获取最大值,php,mysql,sql,Php,Mysql,Sql,我有一张桌子: 评级: id | one | two | three 1 | 12 | 3 | 7 2 | 11 | 30 | 3 3 | 8 | 14 | 4 如何从这些字段(1、2、3)中获取SQL最大值?对于本例,这是30您可以取消打印类似以下内容的数据: select max(value) from ( select id, 'one' col, one value from yourtable union all select id, 'two'
id | one | two | three
1 | 12 | 3 | 7
2 | 11 | 30 | 3
3 | 8 | 14 | 4
如何从这些字段(1、2、3)中获取SQL最大值?对于本例,这是30您可以取消打印类似以下内容的数据:
select max(value)
from
(
select id, 'one' col, one value
from yourtable
union all
select id, 'two' col, two value
from yourtable
union all
select id, 'three' col, three value
from yourtable
) src
看
或者您可以使用类似以下内容:
SELECT max(data)
FROM
(
SELECT
CASE s.col
WHEN 'one' THEN one
WHEN 'two' THEN two
WHEN 'three' THEN three
END AS DATA
FROM yourtable t
CROSS JOIN
(
SELECT 'one' AS col
UNION ALL SELECT 'two'
UNION ALL SELECT 'three'
) s
) s
请参见MySQL中的,您可以使用以下功能:
SELECT MAX(GREATEST(one, two, three))
FROM T;
尝试此查询
SELECT tempTable.id, tempTable.max(val)
FROM (SELECT id, max(one) AS val
FROM tbl
UNION
SELECT id, max(two) AS val
FROM tbl
UNION
SELECT id, max(three) AS val
FROM tbl
) AS tempTable;
您可以使用
case
语句
SELECT
CASE
WHEN one >= two AND one >= three THEN one
WHEN two >= one AND two >= three THEN two
WHEN three >= one AND three >= two THEN three
ELSE one
END AS MaxVal
Oracle中还存在“最大”功能,因此此解决方案也适用于Oracle。
SELECT MAX(field) FROM (
SELECT one AS field FROM table
UNION
SELECT two AS field FROM table
UNION
SELECT three AS field FROM table
) AS t
select GREATEST(max(one), max(two), max(three)) as maximum
from table;
SELECT
CASE
WHEN one >= two AND one >= three THEN one
WHEN two >= one AND two >= three THEN two
WHEN three >= one AND three >= two THEN three
ELSE one
END AS MaxVal