ClickHouse/docs/tr/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

8.7 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true e8cd92bba3 37 Operatörler

Operatörler

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

a[N] Access to an element of an array. The arrayElement(a, N) işlev.

a.N Access to a tuple element. The tupleElement(a, N) işlev.

Sayısal Olumsuzlama Operatörü

-a The negate (a) işlev.

Çarpma Ve bölme operatörleri

a * b The multiply (a, b) işlev.

a / b The divide(a, b) işlev.

a % b The modulo(a, b) işlev.

Toplama Ve çıkarma operatörleri

a + b The plus(a, b) işlev.

a - b The minus(a, b) işlev.

Karşılaştırma Operatörleri

a = b The equals(a, b) işlev.

a == b The equals(a, b) işlev.

a != b The notEquals(a, b) işlev.

a <> b The notEquals(a, b) işlev.

a <= b The lessOrEquals(a, b) işlev.

a >= b The greaterOrEquals(a, b) işlev.

a < b The less(a, b) işlev.

a > b The greater(a, b) işlev.

a LIKE s The like(a, b) işlev.

a NOT LIKE s The notLike(a, b) işlev.

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

Görmek Operatör İNLERDE.

a IN ... The in(a, b) işlev.

a NOT IN ... The notIn(a, b) işlev.

a GLOBAL IN ... The globalIn(a, b) işlev.

a GLOBAL NOT IN ... The globalNotIn(a, b) işlev.

Tarih Ve Saatlerle çalışmak için operatörler

EXTRACT

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: 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.

Bu part parametre büyük / küçük harf duyarsızdır.

Bu date parametre, işlenecek tarihi veya saati belirtir. Ya Tarihli veya DateTime türü desteklenir.

Örnekler:

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.

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 │
└───────────┴────────────┴──────────┴───────────┴─────────────┴─────────────┘

Daha fazla örnek görebilirsiniz testler.

INTERVAL

Oluşturur bir Aralıklı- aritmetik işlemlerde kullanılması gereken tip değeri Tarihli ve DateTime- tip değerleri.

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:

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 │
└─────────────────────┴────────────────────────────────────────────────────────┘

Ayrıca Bakınız

Mantıksal Olumsuzlama Operatörü

NOT a The not(a) işlev.

Mantıksal Ve operatör

a AND b Theand(a, b) işlev.

Mantıksal Veya operatör

a OR b The or(a, b) işlev.

Koşullu Operatör

a ? b : c The if(a, b, c) işlev.

Not:

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() işlev, her satır ne olursa olsun çoğaltılır “a” koşul.

Koşullu İfade

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ü

s1 || s2 The concat(s1, s2) function.

Lambda Oluşturma Operatörü

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ü

[x1, ...] The array(x1, ...) function.

Tuple Oluşturma Operatörü

(x1, x2, ...) The tuple(x2, x2, ...) function.

İlişkisellik

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.

İçin Kontrol NULL

ClickHouse destekler IS NULL ve IS NOT NULL operatörler.

IS NULL

  • İçin Nullable türü değerleri IS NULL operatör döner:
    • 1 değeri ise NULL.
    • 0 başka.
  • Diğer değerler için, IS NULL operatör her zaman döner 0.
SELECT x+100 FROM t_null WHERE y IS NULL
┌─plus(x, 100)─┐
│          101 │
└──────────────┘

IS NOT NULL

  • İçin Nullable türü değerleri IS NOT NULL operatör döner:
    • 0 değeri ise NULL.
    • 1 başka.
  • Diğer değerler için, IS NOT NULL operatör her zaman döner 1.
SELECT * FROM t_null WHERE y IS NOT NULL
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘

Orijinal makale