* Replace underscores with hyphens * remove temporary code * fix style check * fix collapse
8.7 KiB
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: 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
!!! 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
- Aralıklı veri türü
- toİnterval tip dönüştürme işlevleri
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 iseNULL
.0
başka.
- Diğer değerler için,
IS NULL
operatör her zaman döner0
.
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 iseNULL
.1
başka.
- Diğer değerler için,
IS NOT NULL
operatör her zaman döner1
.
SELECT * FROM t_null WHERE y IS NOT NULL
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘