SQL - operatory symboli wieloznacznych
Omówiliśmy już operator 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 symboli wieloznacznych w połączeniu z operatorem LIKE, które zostały szczegółowo wyjaśnione w poniższej tabeli.
Sr.No. | Symbol wieloznaczny i opis |
---|---|
1 | The percent sign (%) Dopasowuje jeden lub więcej znaków. Note - MS Access używa symbolu wieloznacznego gwiazdki (*) zamiast znaku wieloznacznego procentu (%). |
2 | The underscore (_) Dopasowuje jeden znak. Note - MS Access używa znaku zapytania (?) Zamiast podkreślenia (_) w celu dopasowania dowolnego znaku. |
Znak procentu oznacza zero, jeden lub wiele znaków. Podkreślenie reprezentuje pojedynczą liczbę lub znak. Symbole te mogą być używane w kombinacjach.
Składnia
Podstawowa składnia operatorów „%” i „_” jest następująca.
SELECT * FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX_'
Możesz łączyć liczbę N warunków za pomocą operatorów AND lub OR. Tutaj XXXX może być dowolną wartością liczbową lub ciągiem znaków.
Przykład
Poniższa tabela zawiera kilka przykładów pokazujących część WHERE z różnymi klauzulami LIKE z operatorami „%” i „_”.
Sr.No. | Oświadczenie i opis |
---|---|
1 | WHERE SALARY LIKE '200%' Znajduje wartości zaczynające się od 200. |
2 | WHERE SALARY LIKE '%200%' Znajduje wartości, które mają 200 na dowolnej pozycji. |
3 | WHERE SALARY LIKE '_00%' Znajduje wszystkie wartości, które mają 00 na drugiej i trzeciej pozycji. |
4 | WHERE SALARY LIKE '2_%_%' Znajduje wszystkie wartości, które zaczynają się od 2 i mają co najmniej 3 znaki. |
5 | WHERE SALARY LIKE '%2' Znajduje wszystkie wartości kończące się na 2. |
6 | WHERE SALARY LIKE '_2%3' Znajduje wszystkie wartości, które mają 2 na drugiej pozycji i kończą się 3. |
7 | WHERE SALARY LIKE '2___3' Znajduje wszystkie wartości w liczbie pięciocyfrowej zaczynającej się od 2 i kończącej na 3. |
Weźmy prawdziwy przykład, rozważmy tabelę CUSTOMERS zawierającą następujące rekordy.
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Poniższy blok kodu jest przykładem, który wyświetlałby wszystkie rekordy z tabeli CUSTOMERS, w której PŁATNOŚĆ zaczyna się od 200.
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
Dałoby to następujący wynik.
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+