SQL- warunek sprawdzający zakresy

0

Cześć.
Mam tabelę z dwoma kolumnami- od i do. W kodzie mam inne dwie wartości. Czy jest jakiś szybki sposób na zapytanie, które zwróci mi rekordy, gdzie wartości w kodzie mają wspólny zakres (choćby częściowo) pomiędzy wartościami od i do z tabeli? Przykładowo tabela wygląda tak:

od do
1 3
5 7
8 9

Natomiast moje wartości wynoszą 2 i 7. W takim przypadku zwróci rekord pierwszy i drugi.

0

select kol_1, kol_2 from tabela where kol_1> liczba and kol_2< liczba o coś takiego Ci chodzi?

0

Częściowo, ponieważ do sprawdzenia są dwie liczby, a zakresy mogą się pokrywać w różny sposób, niekoniecznie jeden musi być zawarty w drugim, mogą się pokrywać tylko częściowo.

0
SELECT
    OD
    ,DO
FROM
     tabela
WHERE
    2 BETWEEN od AND do
    or 7 BETWEEN od AND do
0

W between chyba trzeba jako pierwszą wartość podawać nazwę kolumny, a te dwie nie są w tabeli.

0

Chyba jednak można :) Dzięki.

1

@Pnczo to nie zadziała jeśli będą dziury w przedziałach, np

3-4
6-7

zwróci to jako ciągły przedział

0

Poprawka po poście @abrakadaber:

SELECT
    OD
    ,DO
FROM
     tabela
WHERE
    2 BETWEEN od AND do
    OR 7 BETWEEN od AND do
    OR od BETWEEN 2 AND 7
    OR do BETWEEN 2 AND 7
0

to też nie zadziała - przedziałów może być wiele nie tylko dwa. Nie napisałeś nic konkretnego więc jedyne co mogę napisać to https://www.google.pl/search?q=sql+continuity+range

0

masz dane w tabeli

od do
1  3
3  6
5  10
8  10
10 14
14 20
13 22
24 28
25 28
27 30

i przy zapytaniu o ciągły zakres od 4 do 28 zwróci

OD DO
 3  6
 5 10
 8 10
10 14
14 20
13 22
24 28
25 28
27 30

uważasz, że wynik jest poprawny?

0

Tak, uważam, ze jest poprawny. To wynika z mojego rozumienia tej czesci pytania:

gdzie wartości w kodzie mają wspólny zakres (choćby częściowo) pomiędzy wartościami od i do z tabeli

Czyli posiłkując się Twoim przykładem:

OD DO Część wspólna dla zakresu 4-28
 3  6    4-6
 5 10   5-10
 8 10   8-10
10 14  10-14
14 20  14-20
13 22  13-22
24 28  24-28
25 28  25-28
27 30  27-28
0

Ja również potwierdzam, dokładnie o coś takiego mi chodziło. W tej przykładowej tabeli wszystkie rekordy poza pierwszym mają przynajmniej jeden element wspólny. Bardzo Wam dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1