oracle筛选多列之间的最小值
时间: 2024-12-08 15:21:05 浏览: 11
在Oracle数据库中,如果你想从表中筛选出多列之间的最小值,可以使用`MIN()`函数结合`CASE`表达式或者`COALESCE`函数来实现。如果你需要同时比较两列A和B的最小值,你可以这样做:
```sql
SELECT
MIN(CASE WHEN column_A = NULL THEN column_B ELSE column_A END) AS min_value,
column_A,
column_B
FROM table_name
```
这里假设`column_A`和`column_B`是你想要比较的列。这个查询首先检查`column_A`是否为NULL,如果为NULL,则返回`column_B`的值,否则返回`column_A`的值,然后取所有行的最小值。
如果你想同时对比更多列,可以继续添加`CASE`语句,例如:
```sql
SELECT
MIN(
CASE
WHEN column_A IS NULL THEN column_B
WHEN column_B IS NULL THEN column_C
ELSE column_A
END
) AS min_value,
column_A,
column_B,
column_C
FROM table_name
```
同样,对于每列都可能存在NULL的情况,你需要考虑所有可能的情况。
阅读全文