Gå til innhold

SQL - Oracle 9i - Finne nærmeste tall..


Anbefalte innlegg

Skrevet (endret)

Jeg har en tabell med tilfeldige tall, er det mulig, på en enkel måte å finne det tallet som er nærmest en gitt verdi?

Se for deg tallrekke som ser slik ut:

 

SELECT * from Tabell;

 

Tabell

--------

1

3

4

2

6

9

 

Jeg er på jakt etter tallene som er nærmest 5. Altså 4 og 6 i dette tilfellet.

 

Takker for svar!

Endret av Zamoht
Videoannonse
Annonse
Skrevet

Gjetter villt:

 

select * from tabell where tall < 5 order by tall desc limit 1
select * from tabell where tall > 5 order by tall asc limit 1

 

Finnes vel noe enklere, men nå fikk jeg hvertfall følelsen av å ha bidratt :-D

Skrevet

hvis oracle SQL har limit så du kan begrense antall treff på hver av disse til 1, og du så kombinerer de to spørringene med en union, burde du kunne få akkurat det du er jakt etter.

 

 

 

(Beklager, for trøtt nå, så jeg orker ikke sette opp hele spørringen)

 

Men, det kan kanskje gjøres på mer effektive og / eller elegante måter.

 

M.

  • 2 uker senere...
Skrevet

I MySQL kan du gjøre det på denne måten:

 

SELECT *
FROM tabell
ORDER BY ABS( 5 - tall ) 
LIMIT 1

 

5 kan naturligvis byttes ut med et vilkårlig tall.

Skrevet

Stilig! har aldri tenkt på at det går an å sortere på en funksjon. Det fungerer i postgres også, så sikkert også i de fleste andre databaser.

 

M.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...