Порівняння
Предикати порівняння
- datatype BETWEEN datatype AND datatype
Перевірка, чи знаходиться значення в межах кінцевих точок діапазону (включно)
2 BETWEEN 1 AND 3 -- true 2 BETWEEN 3 AND 1 -- false
- datatype NOT BETWEEN datatype AND datatype
Не між (заперечення ПОМІЖ).
2 NOT BETWEEN 1 AND 3 -- false
- datatype BETWEEN SYMMETRIC datatype AND datatype
Між, після сортування двох кінцевих значень.
2 BETWEEN SYMMETRIC 3 AND 1 -- true
- datatype NOT BETWEEN SYMMETRIC datatype AND datatype
Не між, після сортування двох кінцевих значень.
2 NOT BETWEEN SYMMETRIC 3 AND 1 -- false
- datatype IS DISTINCT FROM datatype
Не дорівнює, розглядаючи нуль як порівнянне значення.
1 IS DISTINCT FROM NULL -- true (rather than NULL) NULL IS DISTINCT FROM NULL -- false (rather than NULL)
- datatype IS NOT DISTINCT FROM datatype
Дорівнює, розглядаючи нуль як порівнянне значення.
1 IS NOT DISTINCT FROM NULL -- false (rather than NULL) NULL IS NOT DISTINCT FROM NULL -- true (rather than NULL)
- datatype IS NULL
Перевірити, чи значення рівне нулю.
1.5 IS NULL -- false
- datatype IS NOT NULL
Перевірити, чи значення не рівне нулю.
'null' IS NOT NULL -- true
- datatype ISNULL
Перевірити, чи значення рівне нулю (нестандартний синтаксис).
- datatype NOTNULL
Перевірити, чи значення не є null (нестандартний синтаксис).
- boolean IS TRUE
Перевірте, чи дає булевий вираз значення true.
true IS TRUE -- true NULL::boolean IS TRUE -- false (rather than NULL)
- boolean IS NOT TRUE
Перевірте, чи дає булевий вираз значення false або невідоме.
true IS NOT TRUE -- false NULL::boolean IS NOT TRUE -- true (rather than NULL)
- boolean IS FALSE
Перевірте, чи дає булевий вираз значення false.
true IS FALSE -- false NULL::boolean IS FALSE -- false (rather than NULL)
- boolean IS NOT FALSE
Перевірте, чи дає булевий вираз значення true або unknown.
true IS NOT FALSE -- true NULL::boolean IS NOT FALSE -- true (rather than NULL)
- boolean IS UNKNOWN
Перевірити, чи дає булевий вираз невідоме.
true IS UNKNOWN -- false NULL::boolean IS UNKNOWN -- true (rather than NULL)
- boolean IS NOT UNKNOWN
Перевірте, чи дає булевий вираз значення true або false.
true IS NOT UNKNOWN -- true NULL::boolean IS NOT UNKNOWN -- false (rather than NULL)
Функції порівняння
- num_nonnulls(VARIADIC "any")
Повертає кількість ненульових аргументів
SELECT num_nonnulls(1, NULL, 2) -- return 2
- num_nulls(VARIADIC "any")
Повертає кількість нульових аргументів
SELECT num_nulls(1, NULL, 2) -- return 1
Математичні функції та оператори
- numeric_type + numeric_type
Додавання
SELECT 2 + 3 -- returns 5
- + numeric_type
Унарний плюс (без операції)
SELECT + 3.5 -- returns 3.5
- numeric_type - numeric_type
Віднімання
SELECT 2 - 3 -- returns -1
- - numeric_type
Заперечення
SELECT - (-4) -- returns 4
- numeric_type * numeric_type
Множення
SELECT 2 * 3 -- returns 6
- numeric_type / numeric_type
Ділення (для інтегральних типів ділення усікає результат до нуля)
SELECT 5.0 / 2 -- returns 2.5000000000000000 SELECT 5 / 2 -- returns 2 SELECT (-5) / 2 -- returns -2
- numeric_type % numeric_type
За модулем (залишок); доступний для smallint, integer, bigint та numeric
SELECT 5 % 4 -- returns 1
- numeric ^ numeric
- double precision ^ double precision
Піднесення до степеня
SELECT 2 ^ 3 -- returns 8
На відміну від типової математичної практики, багаторазове використання
^
за замовчуванням асоціюється зліва направо:SELECT 2 ^ 3 ^ 3 -- returns 512 SELECT 2 ^ (3 ^ 3) -- returns 134217728
- |/ double precision
Квадратний корінь
SELECT |/ 25.0 -- returns 5
- ||/ double precision
Кубічний корінь
SELECT ||/ 64.0 -- returns 4
- @ numeric_type
Абсолютне значення
SELECT @ -5.0 -- returns 5.0
- integral_type & integral_type
Побітове І
SELECT 91 & 15 -- returns 11
- integral_type | integral_type
Порозрядне АБО
SELECT 32 | 3 -- returns 35
- integral_type # integral_type
Побітове виключне АБО
SELECT 17 # 5 -- returns 20
- ~ integral_type
Побітове НІ
SELECT ~1 -- returns -2
- integral_type << integer
Порозрядний зсув вліво
SELECT 1 << 4 -- returns 16
- integral_type >> integer
Порозрядний зсув вправо
SELECT 8 >> 2 -- returns 2