Diskuze: SQL dotaz - nejbližší vyšší stejná nebo nižší hodnota

Ostatní jazyky SQL SQL a databáze SQL dotaz - nejbližší vyšší stejná nebo nižší hodnota

Avatar
kucera34
Člen
Avatar
kucera34:

Mám dotaz.
Jak sestavit dotaz :-) aby vyhledal nejbližší vyšší,stejná,nebo nižší hodnota
k mnou zadaé hodnotě je ale možné že tato hodnota ve sloupci tabulky neexistuje a proto chci hledat aspoň tu nižší nebo vyšší

Používán sqlite ale myslím že to bude dost podobné i jinde.

Díky moc .....

 
Odpovědět 8.5.2014 23:30
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na kucera34
Drahomír Hanák:

Napadá mě, seřadit si výsledky podle toho, jak jsou daleko od zadané hodnoty a vybrat jeden.

SELECT value FROM table ORDER BY ABS(value-:hodnota) LIMIT 1

Taková query ale samozřejmě nebude moct použít případný index na value.

 
Nahoru Odpovědět 9.5.2014 0:36
Avatar
Odpovídá na kucera34
Michal Štěpánek:

Nevím, jestli to jde vcucnout do jednoho dotazu, ale nejbližší vyšší nebo stejné bych asi hledal nějak takto:

SELECT neco FROM tabulka WHERE (neco >= moje zadaná hodnota) ASC

a nižší nebo stejné:

SELECT neco FROM tabulka WHERE (neco <= moje zadaná hodnota) DESC

Vždycky první záznam z toho dotazu je to co hledáš

Editováno 9.5.2014 7:56
Nahoru Odpovědět 9.5.2014 7:55
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.