Operator like służy do porównywania tekstu do podanego wzorca. Jest szczególnie przydatny podczas filtrowania danych, przy warunkach logicznych (np. w komórkach typu wartość logiczna), a także w formułach.
Główne cechy operatora like:
- porównuje tylko tekst - działa wyłącznie na danych tekstowych
- ignoruje wielkość liter - porównanie nie rozróżnia małych i wielkich liter np. like 'abc' dopasuje również do 'Abc', 'ABC' czy 'aBc'
- może być używany:
- w filtrach za pomocą formuły lookup
- w formułach logicznych (np. if)
- w komórkach typu wartość logiczna (true lub false)
Warto zaznaczyć, że operator like powinien być wszędzie zapisany małymi literami inaczej porównanie nie zadziała.
Znaki specjalne w like
W składni like można używać trzech operatorów specjalnych, które pozwalają skutecznie wyszukać dane według wzorca:
1. ? - zastępuje jeden dowolny znak - może to być litera, cyfra lub znak specjalny.
Przykład:
like 'user??@example.com'
Oznacza, że tekst musi zaczynać się od "user", po którym powinny wystąpić dokładnie dwa znaki (na przykład "_a", "1!", "x2"), a następnie zakończyć się ciągiem "@example.com".
2. * - zastępuje dowolny ciąg znaków - mogą być to litery, cyfry lub znaki specjalne
Przykład:
like 'user_*'
Oznacza, że tekst musi zaczynać się od "user_", a po nim może wystąpić dowolna liczba znaków, na przykład "user_admin", "user_1", "user_123@example.com".
3. \ - escape czyli potraktowanie znaku specjalnego dosłownie
Przykład:
like '\*\?'
Jeżeli chcemy , aby symbole specjalne takie jak ?, * lub \ były traktowane jako zwykłe znaki (a nie jako elementy wzorca), musimy je poprzedzić ukośnikiem \. Na przykład wzorzec like '\*\?' dopasuje dokładnie tekst '*?'.
Jeżeli chcemy, aby znak ukośnika \ również był interpretowany dosłownie, wpisz go jako \\ . Dzięki temu like '\\' dopasuje wartość, która zawiera pojedynczy znak \.
Przykłady użycia:
=lookup(TABELA_DANE, EMAIL like '*@qalcwise.com')
=if(section20.a1 like 'error_??_2025','Błąd krytyczny','ok')
=section21.a1 like 'file??2025.csv' (komórka typu wartość logiczna)
=section1.a1 like section2.a1
=section11.a1 like concat(section11.a2,'*')
0 Komentarze