Zamoht Skrevet 17. mars 2005 Del Skrevet 17. mars 2005 (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 17. mars 2005 av Zamoht Lenke til kommentar
Gilbert Skrevet 17. mars 2005 Del Skrevet 17. mars 2005 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 Lenke til kommentar
mysjkin Skrevet 19. mars 2005 Del Skrevet 19. mars 2005 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. Lenke til kommentar
Valagar Skrevet 2. april 2005 Del Skrevet 2. april 2005 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. Lenke til kommentar
mysjkin Skrevet 2. april 2005 Del Skrevet 2. april 2005 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. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå