Klauzula SQL - LIKE
SQL LIKEklauzula służy do porównywania wartości z podobnymi wartościami za pomocą operatorów symboli wieloznacznych. Istnieją dwa symbole wieloznaczne używane w połączeniu z operatorem LIKE.
- Znak procentu (%)
- Podkreślenie (_)
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% 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 mającą inną klauzulę 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ą rekordy pokazane poniżej.
+----+----------+-----+-----------+----------+
| 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żej znajduje się przykład, w którym zostaną wyświetlone 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 |
+----+----------+-----+-----------+----------+