Operatory wyrażeń
Ostatnia aktualizacja: 28.10.2026Użyj operatorów do obliczania wartości, porównywania danych wejściowych i łączenia warunków, gdy Tworzenie wyrażeń.
Do wyrażeń zadań ruchu ma zastosowanie następująca semantyka. Wyrażenia wykonywane na platformie danych w chmurze używają semantyki tej platformy. Umieść spacje wokół operatorów i ujmij w cudzysłów stałe tekstowe oraz stałe daty, takie jak $HIRE_DATE < '2026-10-08'.
Operatory arytmetyczne
| Operator | Znaczenie | Przykład i wynik |
|---|---|---|
+
|
Dodaje dwa operandy. | 2 + 3 zwraca 5. |
-
|
Odejmuje prawy operand od lewego. Znak minus na początku neguje wartość. | 5 - 2 zwraca 3. |
*
|
Mnoży operandy. | 3 * 4 zwraca 12. |
/
|
Dzieli lewy operand przez prawy. Dzielenie całkowite obcina wynik w kierunku zera. Operand rzeczywisty zachowuje wynik ułamkowy. Dzielenie przez zero zwraca NULL. | 7 / 2 zwraca 3; 7.0 / 2 zwraca 3.5. |
%
|
Konwertuje oba operandy na liczby całkowite i zwraca resztę z dzielenia. To nie jest obliczenie procentowe. | 7 % 3 zwraca 1. |
Operatory porównania
Porównania zwracają 1 dla prawdy i 0 dla fałszu. Zwykłe porównania z wartością NULL zwracają NULL; użyj IS lub IS NOT, aby sprawdzić brakujące wartości.
| Operator | Znaczenie | Przykład i wynik |
|---|---|---|
=
|
Sprawdza równość. | 3 = 3 zwraca 1. |
!=
|
Sprawdza nierówność. | 3 != 4 zwraca 1. |
<>
|
Alternatywny operator nierówności. | 3 <> 3 zwraca 0. |
<
|
Sprawdza, czy lewa wartość jest mniejsza. | 2 < 3 zwraca 1. |
<=
|
Sprawdza, czy jest mniejsze lub równe. | 3 <= 3 zwraca 1. |
>
|
Sprawdza, czy lewa wartość jest większa. | 4 > 3 zwraca 1. |
>=
|
Sprawdza, czy jest większe lub równe. | 3 >= 3 zwraca 1. |
IS
|
Sprawdza równość bez zwracania wartości NULL. Dwie wartości NULL są równe; wartość NULL i wartość inna niż NULL nie są. | NULL IS NULL zwraca 1. |
IS NOT
|
Sprawdza nierówność bez zwracania wartości NULL. | NULL IS NOT 3 zwraca 1. |
Operatory logiczne i warunkowe
| Operator | Znaczenie | Przykład i wynik |
|---|---|---|
AND
|
Prawda, gdy oba warunki są prawdziwe. Operand o wartości false powoduje, że wynik ma wartość false, nawet jeśli drugi operand ma wartość NULL. | (3 > 2) AND (4 < 3) zwraca 0. |
OR
|
Prawda, gdy którykolwiek z warunków jest prawdziwy. Operand o wartości true powoduje, że wynik ma wartość true, nawet jeśli drugi operand to NULL. | (3 > 2) OR (4 < 3) zwraca 1. |
IN
|
Sprawdza przynależność do listy w nawiasach. Jeśli żadna wartość nie pasuje, a lista zawiera NULL, zwraca NULL. Pusta lista zwraca 0, w tym dla lewego operandu o wartości NULL. | 2 IN (1, 2, 3) zwraca 1; 4 IN (1, NULL) zwraca NULL. |
CASE
|
Zwraca pierwszą pasującą gałąź. W przypadku wartości bazowej porównuje ją z każdą wartością WHEN. Bez niego sprawdza każdy warunek WHEN. Używa ELSE, jeśli żadna gałąź nie pasuje, lub NULL, jeśli brakuje ELSE. | CASE WHEN 5 > 3 THEN 'High' ELSE 'Low' END zwraca 'High'. CASE 2 WHEN 1 THEN 'One' WHEN 2 THEN 'Two' END zwraca 'Two'. |
Operatory ciągów znaków i wzorców
| Operator | Znaczenie | Przykład i wynik |
|---|---|---|
||
|
Łączy wartości tekstowe. Operand NULL daje w wyniku NULL. | 'John' || ' ' || 'Smith' zwraca 'John Smith'. |
LIKE
|
Porównuje ciąg znaków po lewej stronie ze wzorcem po prawej stronie. % dopasowuje zero lub więcej znaków; _ dopasowuje jeden. Domyślnie ignoruje wielkość liter ASCII, ale nie różnice w wielkości liter spoza ASCII. ESCAPE określa pojedynczy znak służący do dosłownego traktowania symboli wieloznacznych. |
'Alice' LIKE 'A%' zwraca 1. '10%' LIKE '10!%' ESCAPE '!' zwraca 1. |
GLOB
|
Dopasowywanie z uwzględnieniem wielkości liter przy użyciu wzorców w stylu uniksowym. * dopasowuje zero lub więcej znaków, ? dopasowuje jeden, a nawiasy definiują zestaw znaków. |
'file.csv' GLOB '*.csv' zwraca 1; 'File.CSV' GLOB '*.csv' zwraca 0. |
MATCH
|
Deleguje do zdefiniowanej przez aplikację funkcji match(). Wymagana jest działająca implementacja; domyślna implementacja SQLite zgłasza błąd. |
'Quarterly sales' MATCH 'sales' przedstawia składnię. Wynik zależy od implementacji aplikacji. |
REGEXP
|
Deleguje do zdefiniowanej przez aplikację funkcji regexp(). SQLite domyślnie nie udostępnia tej funkcji. |
'ABC123' REGEXP '^[A-Z]+[0-9]+$' przedstawia składnię. Bez implementacji ewaluacja kończy się niepowodzeniem. |
Operatory bitowe
Te operatory binarne działają na bitach liczb całkowitych, a nie na warunkach logicznych. | oznacza bitowe OR, nawet jeśli edytor wymienia je również w kategorii logicznej.
| Operator | Znaczenie | Przykład i wynik |
|---|---|---|
<<
|
Przesuwa lewą liczbę całkowitą w lewo o liczbę bitów w prawym operandzie. | 3 << 1 zwraca 6. |
>>
|
Przesuwa lewą liczbę całkowitą w prawo o liczbę bitów w prawym operandzie. | 8 >> 1 zwraca 4. |
&
|
Bitowe AND: ustawia bit wyniku tylko wtedy, gdy oba operandy mają ten bit ustawiony. | 6 & 3 zwraca 2. |
|
|
Bitowe OR: ustawia bit wyniku, jeśli którykolwiek z operandów ma ustawiony ten bit. | 6 | 3 zwraca 7. |
Kolejność obliczania i brakujące wartości
Dla powyższych operatorów dwuargumentowych pierwszeństwo od najwyższego do najniższego to: konkatenacja; mnożenie, dzielenie i reszta; dodawanie i odejmowanie; operacje bitowe; porównania porządkowe; testy równości i dopasowania do wzorca; AND; a następnie OR. Operatory na tym samym poziomie są obliczane od lewej do prawej. Nawiasy zmieniają tę kolejność: (2 + 3) * 4 zwraca 20, podczas gdy 2 + 3 * 4 zwraca 14.
Większość operatorów zwraca wartość NULL, gdy operand ma wartość NULL. Opisane powyżej wyjątki obejmują IS, IS NOT oraz konkretne przypadki AND, OR i IN. Użyj $COALESCE, gdy brakująca wartość powinna mieć wartość zastępczą. Zobacz Funkcje wyrażeń.