sql >> Database teknologi >  >> RDS >> Oracle

At finde den laveste værdi i en tabel større end en bestemt værdi

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

Dette vil både effektivt bruge et indeks på mytable(value) og COUNT(STOPKEY) .

Se denne artikel i min blog for detaljer om ydeevne:



  1. MariaDB SESSION_USER() Forklaret

  2. Opdater/forøg en enkelt kolonne på flere rækker på én gang

  3. 'Det angivne input repræsenterer ikke en gyldig geografiforekomst'-undtagelse ved brug af SqlGeographyBuilder

  4. brug WHERE CLAUSE til søgedata fra A-dato til B-dato