Select 多列的最小值
Select min value from multiple column
我在数据库中有以下 SCORE table:
id | val1 | val2 | val3 | val4 |
1 40 100 80 90
2 90 70 90 45
3 50 60 100 30
4 20 30 30 40
我想 select 列 val1、val2 和 val3 中的最小值并使用此代码将其存储在变量中:
int maxVal = 0;
Statement s2 = conn.createStatement();
s2.execute("SELECT min(val1,val2,val3) FROM SCORE");
ResultSet rs1 = s2.getResultSet(); //
while ( rs1.next() ){
maxVal = rs1.getDouble(1);
}
遇到错误。有没有一种简单的方法可以从 table 中的超过 1 列中获取最小值?
如果您使用的是 Java 8,您可以从 Java 代码中获取最小值,如下所示:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT min(val1), min(val2), min(val3) FROM SCORE");
if (rs.next()) {
minValue = DoubleStream.of(
rs.getDouble(1), rs.getDouble(2), rs.getDouble(3)
).min().getAsDouble();
}
如果您使用的小于 Java 8,您可以使用:
if (rs.next()) {
minValue = Math.min(Math.min(rs.getDouble(1), rs.getDouble(2)), rs.getDouble(3));
}
我想到了
SELECT MIN(val)
FROM (SELECT MIN(val1) AS val FROM SCORE
UNION SELECT MIN(val2) FROM SCORE
UNION SELECT MIN(val3) FROM SCORE)
我在数据库中有以下 SCORE table:
id | val1 | val2 | val3 | val4 |
1 40 100 80 90
2 90 70 90 45
3 50 60 100 30
4 20 30 30 40
我想 select 列 val1、val2 和 val3 中的最小值并使用此代码将其存储在变量中:
int maxVal = 0;
Statement s2 = conn.createStatement();
s2.execute("SELECT min(val1,val2,val3) FROM SCORE");
ResultSet rs1 = s2.getResultSet(); //
while ( rs1.next() ){
maxVal = rs1.getDouble(1);
}
遇到错误。有没有一种简单的方法可以从 table 中的超过 1 列中获取最小值?
如果您使用的是 Java 8,您可以从 Java 代码中获取最小值,如下所示:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT min(val1), min(val2), min(val3) FROM SCORE");
if (rs.next()) {
minValue = DoubleStream.of(
rs.getDouble(1), rs.getDouble(2), rs.getDouble(3)
).min().getAsDouble();
}
如果您使用的小于 Java 8,您可以使用:
if (rs.next()) {
minValue = Math.min(Math.min(rs.getDouble(1), rs.getDouble(2)), rs.getDouble(3));
}
我想到了
SELECT MIN(val)
FROM (SELECT MIN(val1) AS val FROM SCORE
UNION SELECT MIN(val2) FROM SCORE
UNION SELECT MIN(val3) FROM SCORE)