* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
9.0 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
37 | Opérateur |
Opérateur
ClickHouse transforme les opérateurs en leurs fonctions correspondantes à l'étape d'analyse des requêtes en fonction de leur priorité, de leur priorité et de leur associativité.
Des Opérateurs D'Accès
a[N]
– Access to an element of an array. The arrayElement(a, N)
fonction.
a.N
– Access to a tuple element. The tupleElement(a, N)
fonction.
Opérateur De Négation Numérique
-a
– The negate (a)
fonction.
Opérateurs de Multiplication et de Division
a * b
– The multiply (a, b)
fonction.
a / b
– The divide(a, b)
fonction.
a % b
– The modulo(a, b)
fonction.
Opérateurs d'Addition et de soustraction
a + b
– The plus(a, b)
fonction.
a - b
– The minus(a, b)
fonction.
Opérateurs De Comparaison
a = b
– The equals(a, b)
fonction.
a == b
– The equals(a, b)
fonction.
a != b
– The notEquals(a, b)
fonction.
a <> b
– The notEquals(a, b)
fonction.
a <= b
– The lessOrEquals(a, b)
fonction.
a >= b
– The greaterOrEquals(a, b)
fonction.
a < b
– The less(a, b)
fonction.
a > b
– The greater(a, b)
fonction.
a LIKE s
– The like(a, b)
fonction.
a NOT LIKE s
– The notLike(a, b)
fonction.
a BETWEEN b AND c
– The same as a >= b AND a <= c
.
a NOT BETWEEN b AND c
– The same as a < b OR a > c
.
Opérateurs pour travailler avec des ensembles de données
Voir Dans les opérateurs.
a IN ...
– The in(a, b)
fonction.
a NOT IN ...
– The notIn(a, b)
fonction.
a GLOBAL IN ...
– The globalIn(a, b)
fonction.
a GLOBAL NOT IN ...
– The globalNotIn(a, b)
fonction.
Opérateurs pour travailler avec des Dates et des heures
EXTRACT
EXTRACT(part FROM date);
Extraire des parties d'une date donnée. Par exemple, vous pouvez récupérer un mois à partir d'une date donnée, ou d'une seconde à partir d'un moment.
Le part
paramètre spécifie la partie de la date à récupérer. Les valeurs suivantes sont disponibles:
DAY
— The day of the month. Possible values: 1–31.MONTH
— The number of a month. Possible values: 1–12.YEAR
— The year.SECOND
— The second. Possible values: 0–59.MINUTE
— The minute. Possible values: 0–59.HOUR
— The hour. Possible values: 0–23.
Le part
le paramètre est insensible à la casse.
Le date
paramètre spécifie la date ou l'heure à traiter. Soit Date ou DateTime le type est pris en charge.
Exemple:
SELECT EXTRACT(DAY FROM toDate('2017-06-15'));
SELECT EXTRACT(MONTH FROM toDate('2017-06-15'));
SELECT EXTRACT(YEAR FROM toDate('2017-06-15'));
Dans l'exemple suivant, nous créons un tableau et de les insérer dans une valeur avec le DateTime
type.
CREATE TABLE test.Orders
(
OrderId UInt64,
OrderName String,
OrderDate DateTime
)
ENGINE = Log;
INSERT INTO test.Orders VALUES (1, 'Jarlsberg Cheese', toDateTime('2008-10-11 13:23:44'));
SELECT
toYear(OrderDate) AS OrderYear,
toMonth(OrderDate) AS OrderMonth,
toDayOfMonth(OrderDate) AS OrderDay,
toHour(OrderDate) AS OrderHour,
toMinute(OrderDate) AS OrderMinute,
toSecond(OrderDate) AS OrderSecond
FROM test.Orders;
┌─OrderYear─┬─OrderMonth─┬─OrderDay─┬─OrderHour─┬─OrderMinute─┬─OrderSecond─┐
│ 2008 │ 10 │ 11 │ 13 │ 23 │ 44 │
└───────────┴────────────┴──────────┴───────────┴─────────────┴─────────────┘
Vous pouvez voir plus d'exemples de test.
INTERVAL
Crée un Intervalle- valeur de type qui doit être utilisée dans les opérations arithmétiques avec Date et DateTime-type de valeurs.
Types d'intervalles:
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
!!! warning "Avertissement"
Les intervalles avec différents types ne peuvent pas être combinés. Vous ne pouvez pas utiliser des expressions comme INTERVAL 4 DAY 1 HOUR
. Spécifiez des intervalles en unités inférieures ou égales à la plus petite unité de l'intervalle, par exemple, INTERVAL 25 HOUR
. Vous pouvez utiliser les opérations consécutives, comme dans l'exemple ci-dessous.
Exemple:
SELECT now() AS current_date_time, current_date_time + INTERVAL 4 DAY + INTERVAL 3 HOUR
┌───current_date_time─┬─plus(plus(now(), toIntervalDay(4)), toIntervalHour(3))─┐
│ 2019-10-23 11:16:28 │ 2019-10-27 14:16:28 │
└─────────────────────┴────────────────────────────────────────────────────────┘
Voir Aussi
- Intervalle type de données
- toInterval type fonctions de conversion
Opérateur De Négation Logique
NOT a
– The not(a)
fonction.
Logique ET de l'Opérateur
a AND b
– Theand(a, b)
fonction.
Logique ou opérateur
a OR b
– The or(a, b)
fonction.
Opérateur Conditionnel
a ? b : c
– The if(a, b, c)
fonction.
Note:
L'opérateur conditionnel calcule les valeurs de b et c, puis vérifie si la condition a est remplie, puis renvoie la valeur correspondante. Si b
ou C
est un arrayJoin() fonction, chaque ligne sera répliquée indépendamment de la “a” condition.
Expression Conditionnelle
CASE [x]
WHEN a THEN b
[WHEN ... THEN ...]
[ELSE c]
END
Si x
est spécifié, alors transform(x, [a, ...], [b, ...], c)
function is used. Otherwise – multiIf(a, b, ..., c)
.
Si il n'y a pas de ELSE c
dans l'expression, la valeur par défaut est NULL
.
Le transform
la fonction ne fonctionne pas avec NULL
.
Opérateur De Concaténation
s1 || s2
– The concat(s1, s2) function.
Opérateur De Création Lambda
x -> expr
– The lambda(x, expr) function.
Les opérateurs suivants n'ont pas de priorité puisqu'ils sont des parenthèses:
Opérateur De Création De Tableau
[x1, ...]
– The array(x1, ...) function.
Opérateur De Création De Tuple
(x1, x2, ...)
– The tuple(x2, x2, ...) function.
Associativité
Tous les opérateurs binaires ont associativité gauche. Exemple, 1 + 2 + 3
est transformé à plus(plus(1, 2), 3)
.
Parfois, cela ne fonctionne pas de la façon que vous attendez. Exemple, SELECT 4 > 2 > 3
résultat sera 0.
Pour l'efficacité, le and
et or
les fonctions acceptent n'importe quel nombre d'arguments. Les chaînes de AND
et OR
les opérateurs se sont transformés en un seul appel de ces fonctions.
La vérification de NULL
Clickhouse soutient le IS NULL
et IS NOT NULL
opérateur.
IS NULL
- Pour Nullable type de valeurs, l'
IS NULL
opérateur retourne:1
si la valeur estNULL
.0
autrement.
- Pour les autres valeurs, la
IS NULL
l'opérateur renvoie toujours0
.
SELECT x+100 FROM t_null WHERE y IS NULL
┌─plus(x, 100)─┐
│ 101 │
└──────────────┘
IS NOT NULL
- Pour Nullable type de valeurs, l'
IS NOT NULL
opérateur retourne:0
si la valeur estNULL
.1
autrement.
- Pour les autres valeurs, la
IS NOT NULL
l'opérateur renvoie toujours1
.
SELECT * FROM t_null WHERE y IS NOT NULL
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘