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 |
+----+----------+-----+-----------+----------+