2020-04-15 13:56:49 +00:00
---
machine_translated: true
2020-05-15 04:34:54 +00:00
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
2020-04-15 13:56:49 +00:00
toc_priority: 37
toc_title: "Operat\xF6rler"
---
# Operatörler {#operators}
ClickHouse onları n öncelik, öncelik ve ilişkilendirme göre sorgu ayrı ştı rma aşaması nda karşı lı k gelen işlevlere işleçleri dönüştürür.
## Erişim Operatörleri {#access-operators}
2020-05-15 04:34:54 +00:00
`a[N]` – Access to an element of an array. The `arrayElement(a, N)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a.N` – Access to a tuple element. The `tupleElement(a, N)` İşlev.
2020-04-15 13:56:49 +00:00
## Sayı sal Olumsuzlama Operatörü {#numeric-negation-operator}
2020-05-15 04:34:54 +00:00
`-a` – The `negate (a)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
## Çarpma ve bölme operatörleri {#multiplication-and-division-operators}
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a * b` – The `multiply (a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a / b` – The `divide(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a % b` – The `modulo(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
## Toplama ve çı karma operatörleri {#addition-and-subtraction-operators}
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a + b` – The `plus(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a - b` – The `minus(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
## Karşı laştı rma Operatörleri {#comparison-operators}
2020-05-15 04:34:54 +00:00
`a = b` – The `equals(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a == b` – The `equals(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a != b` – The `notEquals(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a <> b` – The `notEquals(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a <= b` – The `lessOrEquals(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a >= b` – The `greaterOrEquals(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a < b` – The `less(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a > b` – The `greater(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a LIKE s` – The `like(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a NOT LIKE s` – The `notLike(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
`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` .
## Veri kümeleriyle çalı şmak için operatörler {#operators-for-working-with-data-sets}
2020-05-15 04:34:54 +00:00
*Görmek [Operatör İNLERDE ](in.md ).*
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a IN ...` – The `in(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a NOT IN ...` – The `notIn(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a GLOBAL IN ...` – The `globalIn(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a GLOBAL NOT IN ...` – The `globalNotIn(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
## Tarih ve Saatlerle çalı şmak için operatörler {#operators-datetime}
2020-04-15 13:56:49 +00:00
### EXTRACT {#operator-extract}
``` sql
EXTRACT(part FROM date);
```
Belirli bir tarihten parçaları ayı klayı n. Örneğin, belirli bir tarihten bir ay veya bir zamandan bir saniye alabilirsiniz.
Bu `part` parametre almak için tarihin hangi bölümünü belirtir. Aşağı daki değerler kullanı labilir:
- `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.
Bu `part` parametre büyük / küçük harf duyarsı zdı r.
2020-05-15 04:34:54 +00:00
Bu `date` parametre, işlenecek tarihi veya saati belirtir. Ya [Tarihli ](../../sql-reference/data-types/date.md ) veya [DateTime ](../../sql-reference/data-types/datetime.md ) türü desteklenir.
2020-04-15 13:56:49 +00:00
Örnekler:
``` sql
SELECT EXTRACT(DAY FROM toDate('2017-06-15'));
SELECT EXTRACT(MONTH FROM toDate('2017-06-15'));
SELECT EXTRACT(YEAR FROM toDate('2017-06-15'));
```
Aşağı daki örnekte bir tablo oluşturuyoruz ve içine bir değer ekliyoruz `DateTime` tür.
``` sql
CREATE TABLE test.Orders
(
OrderId UInt64,
OrderName String,
OrderDate DateTime
)
ENGINE = Log;
```
``` sql
INSERT INTO test.Orders VALUES (1, 'Jarlsberg Cheese', toDateTime('2008-10-11 13:23:44'));
```
``` sql
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;
```
``` text
┌─OrderYear─┬─OrderMonth─┬─OrderDay─┬─OrderHour─┬─OrderMinute─┬─OrderSecond─┐
│ 2008 │ 10 │ 11 │ 13 │ 23 │ 44 │
└───────────┴────────────┴──────────┴───────────┴─────────────┴─────────────┘
```
Daha fazla örnek görebilirsiniz [testler ](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/00619_extract.sql ).
### INTERVAL {#operator-interval}
2020-05-15 04:34:54 +00:00
Oluşturur bir [Aralı klı ](../../sql-reference/data-types/special-data-types/interval.md )- aritmetik işlemlerde kullanı lması gereken tip değeri [Tarihli ](../../sql-reference/data-types/date.md ) ve [DateTime ](../../sql-reference/data-types/datetime.md )- tip değerleri.
2020-04-15 13:56:49 +00:00
Aralı k türleri:
- `SECOND`
- `MINUTE`
- `HOUR`
- `DAY`
- `WEEK`
- `MONTH`
- `QUARTER`
- `YEAR`
!!! warning "Uyarı cı "
Farklı tiplere sahip aralı klar birleştirilemez. Gibi ifadeler kullanamazsı nı z `INTERVAL 4 DAY 1 HOUR` . Aralı kları n, örneğin aralı ğı n en küçük birimine eşit veya daha küçük olan birimlerdeki aralı kları belirtin, `INTERVAL 25 HOUR` . Aşağı daki örnekte olduğu gibi ardı şı k işlemleri kullanabilirsiniz.
Örnek:
``` sql
SELECT now() AS current_date_time, current_date_time + INTERVAL 4 DAY + INTERVAL 3 HOUR
```
``` text
┌───current_date_time─┬─plus(plus(now(), toIntervalDay(4)), toIntervalHour(3))─┐
│ 2019-10-23 11:16:28 │ 2019-10-27 14:16:28 │
└─────────────────────┴────────────────────────────────────────────────────────┘
```
**Ayrı ca Bakı nı z**
2020-05-15 04:34:54 +00:00
- [Aralı klı ](../../sql-reference/data-types/special-data-types/interval.md ) veri türü
- [toİnterval ](../../sql-reference/functions/type-conversion-functions.md#function-tointerval ) tip dönüştürme işlevleri
2020-04-15 13:56:49 +00:00
## Mantı ksal Olumsuzlama Operatörü {#logical-negation-operator}
2020-05-15 04:34:54 +00:00
`NOT a` – The `not(a)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
## Mantı ksal ve operatör {#logical-and-operator}
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a AND b` – The`and(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
## Mantı ksal veya operatör {#logical-or-operator}
2020-04-15 13:56:49 +00:00
2020-05-15 04:34:54 +00:00
`a OR b` – The `or(a, b)` İşlev.
2020-04-15 13:56:49 +00:00
## Koşullu Operatör {#conditional-operator}
2020-05-15 04:34:54 +00:00
`a ? b : c` – The `if(a, b, c)` İşlev.
2020-04-15 13:56:49 +00:00
Not:
2020-05-15 04:34:54 +00:00
Koşullu işleç B ve c değerlerini hesaplar, ardı ndan a koşulunun karşı lanı p karşı lanmadı ğı nı kontrol eder ve ardı ndan karşı lı k gelen değeri döndürür. Eğer `b` veya `C` is an [arrayJoin() ](../../sql-reference/functions/array-join.md#functions_arrayjoin ) işlev, her satı r ne olursa olsun çoğaltı lı r “a” koşul.
2020-04-15 13:56:49 +00:00
## Koşullu İfade {#operator_case}
``` sql
CASE [x]
WHEN a THEN b
[WHEN ... THEN ...]
[ELSE c]
END
```
Eğer `x` belirtilen sonra `transform(x, [a, ...], [b, ...], c)` function is used. Otherwise – `multiIf(a, b, ..., c)` .
Eğer herhangi bir `ELSE c` ifadedeki yan tümce, varsayı lan değer `NULL` .
Bu `transform` fonksiyonu ile çalı şmı yor `NULL` .
## Birleştirme Operatörü {#concatenation-operator}
`s1 || s2` – The `concat(s1, s2) function.`
## Lambda Oluşturma Operatörü {#lambda-creation-operator}
`x -> expr` – The `lambda(x, expr) function.`
Parantez oldukları için aşağı daki operatörler bir önceliğe sahip değildir:
## Dizi Oluşturma Operatörü {#array-creation-operator}
`[x1, ...]` – The `array(x1, ...) function.`
## Tuple Oluşturma Operatörü {#tuple-creation-operator}
`(x1, x2, ...)` – The `tuple(x2, x2, ...) function.`
## İlişkisellik {#associativity}
Tüm ikili operatörler ilişkisellikten ayrı ldı . Mesela, `1 + 2 + 3` dönüştür toülür `plus(plus(1, 2), 3)` .
Bazen bu beklediğiniz gibi çalı şmaz. Mesela, `SELECT 4 > 2 > 3` 0 ile sonuç willlanı r.
Verimlilik için, `and` ve `or` işlevler herhangi bir sayı da bağı msı z değişkeni kabul eder. İlgili zincirler `AND` ve `OR` operatörler bu işlevlerin tek bir çağrı sı na dönüştürülür.
2020-05-15 04:34:54 +00:00
## İçin kontrol `NULL` {#checking-for-null}
2020-04-15 13:56:49 +00:00
ClickHouse destekler `IS NULL` ve `IS NOT NULL` operatörler.
### IS NULL {#operator-is-null}
2020-05-15 04:34:54 +00:00
- İçin [Nullable ](../../sql-reference/data-types/nullable.md ) türü değerleri `IS NULL` operatör döner:
2020-04-15 13:56:49 +00:00
- `1` değeri ise `NULL` .
- `0` başka.
- Diğer değerler için, `IS NULL` operatör her zaman döner `0` .
<!-- -->
``` sql
SELECT x+100 FROM t_null WHERE y IS NULL
```
``` text
┌─plus(x, 100)─┐
│ 101 │
└──────────────┘
```
### IS NOT NULL {#is-not-null}
2020-05-15 04:34:54 +00:00
- İçin [Nullable ](../../sql-reference/data-types/nullable.md ) türü değerleri `IS NOT NULL` operatör döner:
2020-04-15 13:56:49 +00:00
- `0` değeri ise `NULL` .
- `1` başka.
- Diğer değerler için, `IS NOT NULL` operatör her zaman döner `1` .
<!-- -->
``` sql
SELECT * FROM t_null WHERE y IS NOT NULL
```
``` text
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘
```
[Orijinal makale ](https://clickhouse.tech/docs/en/query_language/operators/ ) <!--hide-->