选择最小列不等于零

时间:2012-10-21 23:28:59

标签: mysql

我们在表中有2列,并且想要选择两者中最小的一行(除非它等于0,然后我们想要非零列)。

有没有办法在保持简单的SELECT语句的同时执行此操作?

我们想要的是: SELECT LEAST(col1, col2) FROM myTable 除非col2为0,否则我们需要col1。

2 个答案:

答案 0 :(得分:2)

SELECT LEAST(
         IF(col1, col1, col2),
         IF(col2, col2, col1)
       )
FROM   myTable

答案 1 :(得分:1)

SELECT
    CASE
        WHEN col1 = 0 THEN col2
        WHEN col2 = 0 THEN col1
        ELSE LEAST(col1, col2)
    END AS MinCol
FROM myTable