ClickHouse/docs/fr/sql-reference/operators.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

9.2 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 37 Opérateur

Opérateur

Tous les opérateurs sont transformés en leurs fonctions correspondantes à létape danalyse des requêtes en fonction de leur priorité et de leur associativité. Les groupes dopérateurs sont listés par ordre de priorité (plus il est élevé dans la liste, plus tôt lopérateur est connecté à ses arguments).

Des Opérateurs DAccè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 dAddition 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);

Extrait une partie dune date donnée. Par exemple, vous pouvez récupérer un mois à partir dune date donnée, ou dune seconde à partir dun 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: 131.
  • MONTH — The number of a month. Possible values: 112.
  • YEAR — The year.
  • SECOND — The second. Possible values: 059.
  • MINUTE — The minute. Possible values: 059.
  • HOUR — The hour. Possible values: 023.

Le part le paramètre est insensible à la casse.

Le date paramètre spécifie la date ou lheure à 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 lexemple 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 dexemples 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 dintervalles:

  • 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. Exprimer des intervalles en unités plus petites ou égales à la plus petite unité de lintervalle, par exemple INTERVAL 25 HOUR. Vous pouvez utiliser des opérations conséquentes comme dans lexemple 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

Opérateur De Négation Logique

NOT a The not(a) fonction.

Logique ET De lOpé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:

Lopé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 ny a pas de ELSE c dans lexpression, 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 nont pas de priorité, puisquils 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 lefficacité, le and et or les fonctions acceptent nimporte quel nombre darguments. Les chaînes de AND et OR les opérateurs 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 est NULL.
    • 0 autrement.
  • Pour les autres valeurs, la IS NULL lopérateur renvoie toujours 0.
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 est NULL.
    • 1 autrement.
  • Pour les autres valeurs, la IS NOT NULL lopérateur renvoie toujours 1.
SELECT * FROM t_null WHERE y IS NOT NULL
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘

Article Original