poniedziałek, 3 września 2018

SQL - Operatory wieloznaczne


SQL - Operatory wieloznaczne

Omówiliśmy już temat operatora SQL LIKE, który służy do porównywania wartości z podobnymi wartościami za pomocą operatorów wieloznacznych.
SQL obsługuje dwa operatory wieloznaczne w połączeniu z operatorem LIKE, wyjaśnione szczegółowo w poniższej tabeli.
L.p.
Operatory wieloznaczne i opis
1
Znak procentu (%)
Pasuje do jednego lub więcej znaków.
Uwaga: MS Access używa znaku wieloznacznego gwiazdki (*) zamiast znaku wieloznacznego znaku procentowego (%).
2
Podkreślenie (_)
Pasuje do jednego znaku.
Uwaga: MS Access zamiast znaku podkreślenia (_) używa znaku zapytania (?), Aby dopasować dowolny znak.
Znak procentu reprezentuje zero, jeden lub wiele znaków. Podkreślenie reprezentuje pojedynczą liczbę lub znak. Symbole te można stosować w kombinacjach.
Składnia
Podstawowa składnia operatora "%" i "_" jest następująca.
SELECT FROM nazwa_tabeli
WHERE kolumna LIKE 'XXXX%'

or

SELECT FROM nazwa_tabeli
WHERE kolumna LIKE '%XXXX%'

or

SELECT FROM nazwa_tabeli
WHERE kolumna LIKE 'XXXX_'

or

SELECT FROM nazwa_tabeli
WHERE kolumna LIKE '_XXXX'

or

SELECT FROM nazwa_tabeli
WHERE kolumna LIKE '_XXXX_'
Możesz łączyć liczbę warunków za pomocą operatorów AND lub OR. W tym przypadku XXXX może być dowolną wartością numeryczną lub ciągiem tekstowym.
Przykład
Poniższa tabela zawiera szereg przykładów pokazujących, że część WHERE ma różne klauzule LIKE z operatorami "%" i "_".
L.p.
Wyrażenie i opis
1
WHERE PENSJA LIKE ‘200%’
Znajduje wszystkie wartości zaczynające się od 200.
2
WHERE PENSJA LIKE ‘%200%’
Znajduje dowolne wartości, które mają 200 w dowolnej pozycji.
3
WHERE PENSJA LIKE ‘_00%’
Znajduje wszystkie wartości, które mają 00 na drugiej i trzeciej pozycji.
4
WHERE PENSJA LIKE ‘2 _% _%’
Znajduje wszystkie wartości zaczynające się od 2 i mające co najmniej 3 znaki.
5
WHERE PENSJA LIKE '%2'
Znajduje wszystkie wartości, które kończą się na 2.
6
WHERE PENSJA LIKE '_2%3'
Znajduje wszystkie wartości, które mają 2 na drugiej pozycji i kończy na 3.
7
WHERE PENSJA LIKE '2___3'
Znajduje dowolne wartości w pięciocyfrowym numerze zaczynającym się od 2, a kończącym na 3.
Weźmy prawdziwy przykład, rozważmy tabelę KLIENCI, która ma następujące rekordy.
+----+----------+-----+-----------+----------+
 id,  nazwisko,    wiek, adres,        pensja
'1', 'Zawadzki',  '32', 'Warszawska', '2000.00'
'2', 'Kowalczyk', '25', 'Sokratesa',  '1500.00'
'3', 'Kot',       '23', 'Darwina',    '2000.00'
'4', 'Kowalska',  '25', 'Modlińska',  '6500.00'
'5', 'Sapal',     '27', 'Wspólna',    '8500.00'
'6', 'Nowak',     '22', 'Blizne',      NULL
'7', 'Makowska',  '24', 'Piaseczno',   NULL
+----+----------+-----+-----------+----------+
Poniższy blok kodu jest przykładem, który wyświetlałby wszystkie rekordy z tabeli KLIENCI, gdzie PENSJA rozpoczyna się od 200.
SQL> SELECT * FROM KLIENCI
WHERE PENSJA LIKE '200%';
Dałoby to następujący wynik.
+----+----------+-----+-----------+----------+
 id,  nazwisko,   wiek, adres,         pensja
'1', 'Zawadzki', '32',  'Warszawska', '2000.00'
'3', 'Kot',      '23',  'Darwina',    '2000.00'|
+----+----------+-----+-----------+----------+


Brak komentarzy:

Prześlij komentarz