SQL- warunek sprawdzający zakresy

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.

kate87
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 3 lata
0

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

edytowany 1x, ostatnio: kate87
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.

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:13 minut
  • Postów:3874
0
Kopiuj
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.

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:8 miesięcy
  • Postów:6610
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ł


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
PA
@abrakadaber racja nie biorę pod uwagę wewnętrznych zakresów 3-4 nie weźmie choć powinien, 6-7 zmieści się w zakresie filtru...
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:13 minut
  • Postów:3874
0

Poprawka po poście @abrakadaber:

Kopiuj
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
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:8 miesięcy
  • Postów:6610
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


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
PA
@abrakadaber chyba zaćmienie mam co nie zadziała, podaj konkretny przykład, bo ja nie widzę
abrakadaber
abrakadaber
odpowiadaj w postach a nie komentarzach
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:8 miesięcy
  • Postów:6610
0

masz dane w tabeli

Kopiuj
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

Kopiuj
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?


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
edytowany 1x, ostatnio: abrakadaber
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:13 minut
  • Postów:3874
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:

Kopiuj
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
edytowany 1x, ostatnio: Panczo
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.