* 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
8.7 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
37 | Operador |
Operador
ClickHouse transforma los operadores a sus funciones correspondientes en la etapa de análisis de consultas de acuerdo con su prioridad, precedencia y asociatividad.
Operadores de acceso
a[N]
– Access to an element of an array. The arrayElement(a, N)
función.
a.N
– Access to a tuple element. The tupleElement(a, N)
función.
Operador de negación numérica
-a
– The negate (a)
función.
Operadores de multiplicación y división
a * b
– The multiply (a, b)
función.
a / b
– The divide(a, b)
función.
a % b
– The modulo(a, b)
función.
Operadores de suma y resta
a + b
– The plus(a, b)
función.
a - b
– The minus(a, b)
función.
Operadores de comparación
a = b
– The equals(a, b)
función.
a == b
– The equals(a, b)
función.
a != b
– The notEquals(a, b)
función.
a <> b
– The notEquals(a, b)
función.
a <= b
– The lessOrEquals(a, b)
función.
a >= b
– The greaterOrEquals(a, b)
función.
a < b
– The less(a, b)
función.
a > b
– The greater(a, b)
función.
a LIKE s
– The like(a, b)
función.
a NOT LIKE s
– The notLike(a, b)
función.
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
.
Operadores para trabajar con conjuntos de datos
Ver IN operadores.
a IN ...
– The in(a, b)
función.
a NOT IN ...
– The notIn(a, b)
función.
a GLOBAL IN ...
– The globalIn(a, b)
función.
a GLOBAL NOT IN ...
– The globalNotIn(a, b)
función.
Operadores para trabajar con fechas y horas
EXTRACT
EXTRACT(part FROM date);
Extraer partes de una fecha determinada. Por ejemplo, puede recuperar un mes a partir de una fecha determinada o un segundo a partir de una hora.
El part
parámetro especifica qué parte de la fecha se va a recuperar. Los siguientes valores están 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.
El part
El parámetro no distingue entre mayúsculas y minúsculas.
El date
parámetro especifica la fecha o la hora a procesar. Bien Fecha o FechaHora tipo es compatible.
Ejemplos:
SELECT EXTRACT(DAY FROM toDate('2017-06-15'));
SELECT EXTRACT(MONTH FROM toDate('2017-06-15'));
SELECT EXTRACT(YEAR FROM toDate('2017-06-15'));
En el siguiente ejemplo creamos una tabla e insertamos en ella un valor con el DateTime
tipo.
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 │
└───────────┴────────────┴──────────┴───────────┴─────────────┴─────────────┘
Puedes ver más ejemplos en prueba.
INTERVAL
Crea un Intervalo-type valor que debe utilizarse en operaciones aritméticas con Fecha y FechaHora-type valores.
Tipos de intervalos:
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
!!! warning "Advertencia"
Los intervalos con diferentes tipos no se pueden combinar. No puedes usar expresiones como INTERVAL 4 DAY 1 HOUR
. Especifique intervalos en unidades que sean más pequeñas o iguales que la unidad más pequeña del intervalo, por ejemplo, INTERVAL 25 HOUR
. Puede usar operaciones consecutivas, como en el siguiente ejemplo.
Ejemplo:
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 │
└─────────────────────┴────────────────────────────────────────────────────────┘
Ver también
- Intervalo tipo de datos
- ToInterval funciones de conversión de tipo
Operador de Negación Lógica
NOT a
– The not(a)
función.
Operador lógico and
a AND b
– Theand(a, b)
función.
Operador lógico or
a OR b
– The or(a, b)
función.
Operador condicional
a ? b : c
– The if(a, b, c)
función.
Nota:
El operador condicional calcula los valores de b y c, luego verifica si se cumple la condición a y luego devuelve el valor correspondiente. Si b
o C
es una arrayJoin() función, cada fila se replicará independientemente de la “a” condición.
Expresión condicional
CASE [x]
WHEN a THEN b
[WHEN ... THEN ...]
[ELSE c]
END
Si x
se especifica, entonces transform(x, [a, ...], [b, ...], c)
function is used. Otherwise – multiIf(a, b, ..., c)
.
Si no hay ELSE c
cláusula en la expresión, el valor predeterminado es NULL
.
El transform
no funciona con NULL
.
Operador de Concatenación
s1 || s2
– The concat(s1, s2) function.
Operador de Creación Lambda
x -> expr
– The lambda(x, expr) function.
Los siguientes operadores no tienen prioridad ya que son corchetes:
Operador de creación de matrices
[x1, ...]
– The array(x1, ...) function.
Operador de creación de tupla
(x1, x2, ...)
– The tuple(x2, x2, ...) function.
Asociatividad
Todos los operadores binarios han dejado asociatividad. Por ejemplo, 1 + 2 + 3
se transforma a plus(plus(1, 2), 3)
.
A veces esto no funciona de la manera que esperas. Por ejemplo, SELECT 4 > 2 > 3
resultará en 0.
Para la eficiencia, el and
y or
funciones aceptan cualquier número de argumentos. Las cadenas correspondientes de AND
y OR
operadores se transforman en una sola llamada de estas funciones.
Comprobación de NULL
ClickHouse soporta el IS NULL
y IS NOT NULL
operador.
IS NULL
- Para NULL valores de tipo, el
IS NULL
operador devuelve:1
si el valor esNULL
.0
de lo contrario.
- Para otros valores, el
IS NULL
operador siempre devuelve0
.
SELECT x+100 FROM t_null WHERE y IS NULL
┌─plus(x, 100)─┐
│ 101 │
└──────────────┘
IS NOT NULL
- Para NULL valores de tipo, el
IS NOT NULL
operador devuelve:0
si el valor esNULL
.1
de lo contrario.
- Para otros valores, el
IS NOT NULL
operador siempre devuelve1
.
SELECT * FROM t_null WHERE y IS NOT NULL
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘