Tüm Ürünler
Search
Belge Merkezi

MaxCompute:İşleçler

Son Güncelleme:Oct 10, 2026

İşleçler; MaxCompute SQL deyimlerinde değerleri karşılaştırmanıza, hesaplamalar yapmanıza, dizeleri işlemenize, ikili verilerle çalışmanıza ve mantıksal koşulları birleştirmenize olanak tanır.

Genel Bakış

MaxCompute aşağıdaki işleç türlerini destekler:


İşleç türü


Açıklama


İlişkisel işleçler


Değerleri karşılaştırır ve BOOLEAN sonucu döndürür.


Dize işleçleri


Dizeleri birleştirir.


Aritmetik işleçler


Matematiksel hesaplamalar yapar.


Bitsel işleçler


Tamsayıların ikili gösterimleri üzerinde işlemler yapar.


Mantıksal işleçler


Birden çok koşulu birleştirir. Genellikle BOOLEAN ifadeleriyle birlikte kullanılır.

İlişkisel işleçler

İlişkisel işleçler iki değeri karşılaştırır ve TRUE, FALSE veya NULL döndürür. Aksi belirtilmedikçe, herhangi bir işlenen NULL ise sonuç NULL olur.


İşleç


Açıklama


A = B


A, B'ye eşitse TRUE döndürür. A veya B NULL ise NULL döndürür.


A<=>B


NULL güvenli eşitlik. Hem A hem de B NULL ise TRUE döndürür. Yalnızca biri NULL ise FALSE döndürür. Aksi takdirde, A B'ye eşitse TRUE, değilse FALSE döndürür.


A<>B


A, B'ye eşit değilse TRUE döndürür. A veya B NULL ise NULL döndürür.


A<B


A, B'den küçükse TRUE döndürür. A veya B NULL ise NULL döndürür.


A<=B


A, B'den küçük veya B'ye eşitse TRUE döndürür. A veya B NULL ise NULL döndürür.


A>B


A, B'den büyükse TRUE döndürür. A veya B NULL ise NULL döndürür.


A>=B


A, B'den büyük veya B'ye eşitse TRUE döndürür. A veya B NULL ise NULL döndürür.


A IS NULL


A NULL ise TRUE döndürür. Aksi takdirde FALSE döndürür.


A IS NOT NULL


A NULL değilse TRUE döndürür. Aksi takdirde FALSE döndürür.


A LIKE B


Desen eşleştirme. A dizesi B deseniyle eşleşiyorsa TRUE döndürür. A veya B NULL ise NULL döndürür. % joker karakteri sıfır veya daha fazla karakterle eşleşir. _ joker karakteri tam olarak bir karakterle eşleşir. Değişmez bir % veya _ karakteriyle eşleşmek için tek tırnak içine alın ('%' veya '_').


A RLIKE B


Düzenli ifade eşleştirme. A dizesi B düzenli ifadesiyle eşleşiyorsa TRUE döndürür. A veya B NULL ise NULL döndürür. B boş bir dizeyse hata döndürür. A RLIKE B ifadesi A REGEXP B ile eşdeğerdir.


A IN B


A, B kümesindeyse TRUE döndürür. A NULL ise NULL döndürür. B kümesi en az bir öğe içeren sabit bir küme olmalı ve tüm öğeler aynı veri türünde olmalıdır.


A [NOT] BETWEEN B AND C


A, B'den büyük veya eşit ve C'den küçük veya eşitse TRUE döndürür (NOT ile tersi). A, B veya C NULL ise NULL döndürür.


A IS [NOT] DISTINCT FROM B


NULL değerleri eşit kabul ederek iki değeri karşılaştırır.

LIKE desen örnekleri

'aaa' LIKE 'a__'    -- TRUE (underscore matches one character)
'aaa' LIKE 'a%'     -- TRUE (percent matches zero or more characters)
'aaa' LIKE 'aab'    -- FALSE
'a%b' LIKE 'a\\%b'  -- TRUE (escaped percent matches literal %)
'axb' LIKE 'a\\%b'  -- FALSE

Kullanım örnekleri

SELECT * FROM user WHERE user_id = '0001';
SELECT * FROM user WHERE user_name <> 'maggie';
SELECT * FROM user WHERE age > '50';
SELECT * FROM user WHERE birth_day >= '1980-01-01 00:00:00';
SELECT * FROM user WHERE is_female IS NULL;
SELECT * FROM user WHERE is_female IS NOT NULL;
SELECT * FROM user WHERE user_id IN (0001, 0010);
SELECT * FROM user WHERE user_name LIKE 'M%';

Önemli notlar

Not

Uyuşmayan türler karşılaştırmalarda NULL döndürebilir. Karşılaştırmadan önce işlenenleri uyumlu türlere dönüştürün. Veri türü dönüştürme.

DOUBLE değerlerin karşılaştırılması

Sınırlı hassasiyet nedeniyle DOUBLE değerleri doğrudan = ile karşılaştırmayın. Bunun yerine, mutlak farkın bir eşikten küçük olup olmadığını kontrol edin:

ABS(0.9999999999 - 1.0000000000) < 0.000000001
-- 0.9999999999 and 1.0000000000 have a precision of 10 decimal digits,
-- whereas 0.000000001 has a precision of 9 decimal digits.
-- 0.9999999999 is considered to be equal to 1.0000000000.
  • ABS işlevi, girdisinin mutlak değerini döndüren yerleşik bir işlevdir.

  • MaxCompute'teki bir DOUBLE değeri genellikle 14 ondalık basamak hassasiyet sağlar.

STRING ve BIGINT değerlerin karşılaştırılması

STRING ile BIGINT'i karşılaştırmak her ikisini de örtülü olarak DOUBLE'a dönüştürür; bu durum hassasiyet kaybına neden olabilir. STRING'i önce BIGINT'e dönüştürmek için CAST(string_value AS BIGINT) kullanın.

Dize işleçleri


İşleç


Açıklama


A||B


A ve B dizelerini birleştirir. Örneğin, a||b||c ifadesi CONCAT(a, b, c) ile eşdeğerdir.

Örnek

SELECT first_name || ' ' || last_name AS full_name FROM employees;

Aritmetik işleçler

Aritmetik işleçler, sayısal değerler üzerinde matematiksel hesaplamalar yapar.


İşleç


Açıklama


A+B


A ve B'nin toplamını döndürür. A veya B NULL ise NULL döndürür.


A-B


A eksi B farkını döndürür. A veya B NULL ise NULL döndürür.


A*B


A çarpı B çarpımını döndürür. A veya B NULL ise NULL döndürür.


A/B


A bölü B bölümünü döndürür. A veya B NULL ise NULL döndürür. Hem A hem de B BIGINT türündeyse sonuç DOUBLE türünde olur.


A%B


A bölü B kalanını döndürür. A veya B NULL ise NULL döndürür.


+A


A'yı döndürür (tekli artı).


-A


A'nın negatifini döndürür. A NULL ise NULL döndürür.


A DIV B


A'yı B'ye böler ve kesirli kısmı atar. A veya B NULL ise NULL döndürür.

Örnek

SELECT age + 10, age - 10, age % 10, -age, age * age, age / 10, age DIV 10 FROM user;

Veri türü kuralları

  • Yalnızca STRING, BIGINT, DOUBLE ve TIMESTAMP_NTZ işlenenleri aritmetik işlemleri destekler. Tarih ve BOOLEAN değerleri desteklenmez. MaxCompute TIMESTAMP_NTZ veri türleri.

  • STRING işlenenleri, hesaplamadan önce örtülü olarak DOUBLE'a dönüştürülür.

  • BIGINT ve DOUBLE işlenenleri karıştırıldığında BIGINT değeri örtülü olarak DOUBLE'a dönüştürülür ve sonuç DOUBLE olur.

  • Hem A hem de B BIGINT ise A / B DOUBLE döndürür. Diğer tüm aritmetik işlemler iki BIGINT işleneninde BIGINT döndürür.

Bitsel işleçler

Bitsel işleçler, tamsayıların ikili gösterimi üzerinde çalışır. Her iki işlenen de BIGINT olmalıdır. Örtülü tür dönüştürmeleri uygulanmaz.


İşleç


Sözdizimi


Açıklama


& / BITAND


A & B veya BITAND(A, B)


A ve B'nin bitsel AND sonucunu döndürür. Örneğin, 1 & 2 ifadesi 0 döndürür ve BITAND(1, 3) ifadesi 1 döndürür. A veya B NULL ise NULL döndürür.


| / BITOR


A|B veya BITOR(A, B)


A ve B'nin bitsel OR sonucunu döndürür. Örneğin, 1|2 ifadesi 3 döndürür ve BITOR(1, 3) ifadesi 3 döndürür. A veya B NULL ise NULL döndürür.


~ / BITNOT


~A veya BITNOT(A)


A'nın bitsel NOT sonucunu döndürür. Örneğin, ~1 ifadesi -2 döndürür ve BITNOT(7) ifadesi -8 döndürür. A NULL ise NULL döndürür.


^ / BITXOR


A ^ B veya BITXOR(A, B)


A ve B'nin bitsel XOR sonucunu döndürür. Örneğin, 1 ^ 2 ifadesi 3 döndürür ve BITXOR(4, 5) ifadesi 1 döndürür. A veya B NULL ise NULL döndürür.

Mantıksal işleçler

Mantıksal işleçler BOOLEAN ifadelerini birleştirir. Yalnızca BOOLEAN işlenenleri desteklenir; örtülü tür dönüştürmeleri uygulanmaz.

Aşağıdaki doğruluk tabloları, TRUE, FALSE ve NULL değerlerinin tüm kombinasyonları için sonuçları gösterir:

AND


A


B


A AND B


TRUE


TRUE


TRUE


TRUE


FALSE


FALSE


FALSE


TRUE


FALSE


FALSE


FALSE


FALSE


FALSE


NULL


FALSE


NULL


FALSE


FALSE


TRUE


NULL


NULL


NULL


TRUE


NULL


NULL


NULL


NULL

OR


A


B


A OR B


TRUE


TRUE


TRUE


TRUE


FALSE


TRUE


FALSE


TRUE


TRUE


FALSE


FALSE


FALSE


FALSE


NULL


NULL


NULL


FALSE


NULL


TRUE


NULL


TRUE


NULL


TRUE


TRUE


NULL


NULL


NULL

NOT


A


NOT A


TRUE


FALSE


FALSE


TRUE


NULL


NULL

İşleç önceliği

Bir ifade birden çok işleç içerdiğinde MaxCompute bunları aşağıdaki sırayla değerlendirir. Daha düşük numaralar daha yüksek önceliğe sahiptir. Aynı düzeydeki işleçler soldan sağa doğru değerlendirilir.


Öncelik


İşleçler


1 (en yüksek)


IS (NOT) NULL


2


^


3


*, /, %, DIV


4


+, -


5


||


6


&


7


|


8


(NOT) LIKE, (NOT) RLIKE, =, ==, IS (NOT) DISTINCT FROM, <>, !=, <=, <, >=, >


9


(NOT) IN, (NOT) BETWEEN AND


10


NOT


11


AND


12 (en düşük)


OR

Varsayılan önceliği geçersiz kılmak için parantez kullanın. Örneğin:

a = 1 AND b = 1 OR c = 1       -- Evaluates AND first, then OR.
a = 1 AND (b = 1 OR c = 1)     -- Evaluates OR first (inside parentheses), then AND.