اپراتورها 

ClickHouse تبدیل اپراتورها به توابع مربوط به خود را در پرس و جو و تجزیه مرحله با توجه به اولویت اولویت و associativity.

اپراتورهای دسترسی 

a[N] – Access to an element of an array. The arrayElement(a, N) تابع.

a.N – Access to a tuple element. The tupleElement(a, N) تابع.

اپراتور نفی عددی 

-a – The negate (a) تابع.

اپراتورهای ضرب و تقسیم 

a * b – The multiply (a, b) تابع.

a / b – The divide(a, b) تابع.

a % b – The modulo(a, b) تابع.

اپراتورهای جمع و تفریق 

a + b – The plus(a, b) تابع.

a - b – The minus(a, b) تابع.

مقایسه اپراتورها 

a = b – The equals(a, b) تابع.

a == b – The equals(a, b) تابع.

a != b – The notEquals(a, b) تابع.

a <> b – The notEquals(a, b) تابع.

a <= b – The lessOrEquals(a, b) تابع.

a >= b – The greaterOrEquals(a, b) تابع.

a < b – The less(a, b) تابع.

a > b – The greater(a, b) تابع.

a LIKE s – The like(a, b) تابع.

a NOT LIKE s – The notLike(a, b) تابع.

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.

اپراتورها برای کار با مجموعه داده ها 

ببینید در اپراتورها.

a IN ... – The in(a, b) تابع.

a NOT IN ... – The notIn(a, b) تابع.

a GLOBAL IN ... – The globalIn(a, b) تابع.

a GLOBAL NOT IN ... – The globalNotIn(a, b) تابع.

اپراتورها برای کار با تاریخ و زمان 

EXTRACT 

EXTRACT(part FROM date);

استخراج قطعات از یک تاریخ معین. مثلا, شما می توانید یک ماه از یک تاریخ معین بازیابی, یا یک ثانیه از یک زمان.

این part پارامتر مشخص می کند که بخشی از تاریخ برای بازیابی. مقادیر زیر در دسترس هستند:

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

این part پارامتر غیر حساس به حروف است.

این date پارامتر تاریخ یا زمان پردازش را مشخص می کند. هر دو تاریخ یا DateTime نوع پشتیبانی می شود.

مثالها:

SELECT EXTRACT(DAY FROM toDate('2017-06-15'));
SELECT EXTRACT(MONTH FROM toDate('2017-06-15'));
SELECT EXTRACT(YEAR FROM toDate('2017-06-15'));

در مثال زیر ما یک جدول ایجاد می کنیم و با ارزش وارد می کنیم DateTime نوع.

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

شما می توانید نمونه های بیشتری را در تستها.

INTERVAL 

ایجاد یک فاصله- ارزش نوع است که باید در عملیات ریاضی با استفاده تاریخ و DateTime- ارزش نوع .

انواع فواصل:
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR

مثال:

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

همچنین نگاه کنید به

اپراتور نفی منطقی 

NOT a – The not(a) تابع.

منطقی و اپراتور 

a AND b – Theand(a, b) تابع.

منطقی یا اپراتور 

a OR b – The or(a, b) تابع.

اپراتور شرطی 

a ? b : c – The if(a, b, c) تابع.

یادداشت:

اپراتور مشروط محاسبه ارزش ب و ج, سپس چک چه شرایط ملاقات کرده است, و سپس مقدار مربوطه را برمی گرداند. اگر b یا C یک ارریجین() تابع, هر ردیف خواهد شد بدون در نظر گرفتن تکرار “a” شرط.

عبارت شرطی 

CASE [x]
    WHEN a THEN b
    [WHEN ... THEN ...]
    [ELSE c]
END

اگر x مشخص شده است, سپس transform(x, [a, ...], [b, ...], c) function is used. Otherwise – multiIf(a, b, ..., c).

اگر وجود ندارد ELSE c بند در بیان, مقدار پیش فرض است NULL.

این transform تابع با کار نمی کند NULL.

اپراتور الحاق 

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

لامبدا اپراتور ایجاد 

x -> expr – The lambda(x, expr) function.

اپراتورهای زیر اولویت ندارند زیرا براکت هستند:

اپراتور ایجاد مجموعه 

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

اپراتور ایجاد تاپل 

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

Associativity 

همه اپراتورهای دودویی انجمن را ترک کرده اند. به عنوان مثال, 1 + 2 + 3 تبدیل به plus(plus(1, 2), 3).
گاهی اوقات این راه شما انتظار می رود کار نمی کند. به عنوان مثال, SELECT 4 > 2 > 3 در نتیجه 0.

برای بهره وری and و or توابع قبول هر تعداد از استدلال. زنجیره های مربوطه از AND و OR اپراتورها به یک تماس از این توابع تبدیل شده است.

در حال بررسی برای NULL 

تاتر از IS NULL و IS NOT NULL اپراتورها.

IS NULL 

  • برای Nullable مقادیر نوع IS NULL بازگشت اپراتور:
    • 1 اگر مقدار باشد NULL.
    • 0 وگرنه
  • برای ارزش های دیگر IS NULL اپراتور همیشه باز می گردد 0.
SELECT x+100 FROM t_null WHERE y IS NULL
┌─plus(x, 100)─┐
│          101 │
└──────────────┘

IS NOT NULL 

  • برای Nullable مقادیر نوع IS NOT NULL بازگشت اپراتور:
    • 0 اگر مقدار باشد NULL.
    • 1 وگرنه
  • برای ارزش های دیگر IS NOT NULL اپراتور همیشه باز می گردد 1.
SELECT * FROM t_null WHERE y IS NOT NULL
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘

درجهبندی: 5 - 4 رای

این مطالب مفید بود?
★★★★★