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) İşlev.

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

Sayısal Olumsuzlama Operatörü 

-a – The negate (a) İşlev.

Çarpma ve bölme operatörleri 

a * b – The multiply (a, b) İşlev.

a / b – The divide(a, b) İşlev.

a % b – The modulo(a, b) İşlev.

Toplama ve çıkarma operatörleri 

a + b – The plus(a, b) İşlev.

a - b – The minus(a, b) İşlev.

Karşılaştırma Operatörleri 

a = b – The equals(a, b) İşlev.

a == b – The equals(a, b) İşlev.

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

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

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

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

a < b – The less(a, b) İşlev.

a > b – The greater(a, b) İşlev.

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

a NOT LIKE s – The notLike(a, b) İş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) İşlev.

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

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

a GLOBAL NOT IN ... – The globalNotIn(a, b) İş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: 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.

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

Ö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) İşlev.

Mantıksal ve operatör 

a AND b – Theand(a, b) İşlev.

Mantıksal veya operatör 

a OR b – The or(a, b) İşlev.

Koşullu Operatör 

a ? b : c – The if(a, b, c) İş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

Rating: 4.5 - 6 votes

Was this content helpful?
★★★★★