Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Encontrar o valor mais baixo em uma tabela maior que um determinado valor

SELECT  *
FROM    (
        SELECT  *
        FROM    (
                SELECT  *
                FROM    mytable
                WHERE   value > 10000
                ORDER BY
                        value
                )
        UNION ALL
        SELECT  *
        FROM    (
                SELECT  *
                FROM    mytable
                ORDER BY
                        value DESC
                )
        )
WHERE   rownum = 1

Isso usará eficientemente um índice em mytable(value) e COUNT(STOPKEY) .

Veja este artigo no meu blog para obter detalhes de desempenho: