ClickHouse/docs/fa/sql-reference/operators/index.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

9.7 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 37 اپراتورها

اپراتورها

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

این 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

!!! warning "اخطار" فواصل با انواع مختلف نمی تواند ترکیب شود. شما می توانید عبارات مانند استفاده کنید INTERVAL 4 DAY 1 HOUR. مشخص فواصل در واحد است که کوچکتر یا برابر با کوچکترین واحد فاصله, مثلا, INTERVAL 25 HOUR. شما می توانید عملیات متوالی مانند مثال زیر استفاده کنید.

مثال:

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

مقاله اصلی