SAP HANA Birliği ve Tüm Birlikler: OperaÖrnekler
⚡ Akıllı Özet
SAP HANA OperaTor, SQL içinde hesaplama, değer karşılaştırma veya atama işlemlerini gerçekleştirir. Altı farklı operatör ailesi vardır: tekli ve ikili, aritmetik, dize, karşılaştırma, mantıksal ve UNION ve INTERSECT gibi küme operatörleri.

SAP HANA Operator hesaplama, değer karşılaştırma veya değer atamak için kullanılabilir.
SAP HANA Operaları
- Tekli ve İkili Operator
- Aritmetik Operator
- dizi Operaları
- karşılaştırma Operator
- mantıksal Operator
- set Operator
Her operatör bir değer döndürür, bu nedenle birbirlerinin içine yerleştirilebilirler. Değerlendirilme sıraları, her bir operatör ailesinden sonra açıklanan öncelik kurallarına göre belirlenir.
Tekli ve İkili Operator
| Kullanım | Çalışma | Açıklama |
|---|---|---|
| Birli | Birli operatör bir işlenene uygulanır | Tekli artı operatörü (+) Tekli olumsuzlama operatörü (-) Mantıksal olumsuzlama (DEĞİL) |
| İkili | Bir İkili Operator iki işlenen üzerinde uygulanır | Çarpma operatörleri ( *, / ) Toplama operatörleri ( +,- ) Karşılaştırma operatörleri ( =,!=,<,>,<=,>= ) Mantıksal operatörler ( VE, VEYA ) |
Aritmetik Operator
- Ekleme (+)
- Alttraction (-)
- Çarpma işlemi ( * )
- Bölüm ( / )
dizi Operator
Dizi Operator, dizeler, ifadeler veya sabitler gibi iki öğeyi tek bir öğede birleştiren bir birleştirme operatörüdür.
İki Dikey Çubuk “||” birleştirme operatörü olarak kullanılır.
karşılaştırma Operator
Karşılaştırma operatörü iki işleneni karşılaştırmak için kullanılır. Aşağıda Karşılaştırma listesi bulunmaktadır Operator-
- Eşittir ( = )
- Şundan Büyük ( > )
- Less Şundan ( < )
- Büyük veya eşit ( >= )
- Less küçük veya eşit ( <= )
- Eşit Değil (!= , <> )
mantıksal Operator
Arama kriterlerinde mantıksal operatör kullanılır.
Örneğin WHERE koşul1 VE / VEYA / DEĞİL koşul2
Mantıksal operatörün listesi aşağıdadır –
- VE – (örneğin koşul1 VE koşul2 OLDUĞU YERDE)
Hem Koşul1 hem de Koşul2 doğruysa, Birleştir koşulu doğrudur, aksi takdirde yanlış olur. - VEYA – (örneğin koşul1 VEYA koşul2 geçerliyse)
Koşul1 VEYA Koşul2 doğruysa, her iki Koşul da yanlışsa birleştirilmiş koşul doğru veya yanlıştır. - DEĞİL – (örneğin, DEĞİL koşulu)
NOT koşulu doğrudur Koşul yanlışsa.
set Operaları
- UNION – İki veya daha fazla SELECT sorgusunu veya ifadesini yineleme yapmadan birleştirir.
- UNION ALL – İki veya daha fazla SELECT sorgusunu veya ifadesini birleştirir, tüm yinelenen satırları da içerir.
- INTERSECT – İki veya daha fazla SELECT ifadesini veya sorguyu birleştirir ve tüm ortak satırları döndürür.
- EXCEPT – İlk sorgunun çıktısını alır ve ikinci sorgu tarafından seçilen satırı kaldırır.
Örneğin Bazı değerlerin ortak olduğu iki tablom var (tablo1, tablo2).
Bu iki tablo için Set operatörünü (Union, Union ALL, Intersect, hariç) kullanıyoruz. SQL aşağıda olduğu gibi -
Tablo1- SQL Komut Dosyası Oluştur
CREATE COLUMN TABLE DHK_SCHEMA.TABLE1 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');
Tablo2- SQL Komut Dosyası Oluştur
CREATE COLUMN TABLE DHK_SCHEMA.TABLE2 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');
not: Burada “DHK_SCHEMA” bir şema adıdır, kullanıcı şema adını değiştirebilir. SQL buna göre.
set Operator Örnekleri aşağıdaki gibidir
| Kullanım | SQL Sorgu | Çıktı | Kullanımlar |
|---|---|---|---|
| BİRLİĞİ | SEÇİN * DAN ( SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE1 BİRLİĞİ SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE2 ) TARAFINDAN SİPARİŞ ELEMAN; |
İki veya daha fazla sorgunun sonucunu yineleme olmadan birleştirin. | |
| BİRLİĞİ TÜMÜ | SEÇİN * DAN ( SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE1 BİRLİĞİ TÜMÜ SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE2 ) TARAFINDAN SİPARİŞ ELEMAN; |
İki veya daha fazla sorgunun sonucunu tüm kopyalarla birleştirin. | |
| KESİŞİM | SEÇİN * DAN ( SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE1 KESİŞİM SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE2 ) TARAFINDAN SİPARİŞ ELEMAN; |
İki veya daha fazla sorgunun sonucunu tüm ortak satırlarla birleştirin. | |
| DIŞINDA | SEÇİN * DAN ( SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE1 DIŞINDA SEÇİN ELEMANI DAN DHK_SCHEMA.TABLE2 ) TARAFINDAN SİPARİŞ ELEMAN; |
İlk sorgunun çıktısını alır ve ikinci sorgu tarafından seçilen satırı kaldırır |
set OperaKurallar ve Gereksinimler
Küme operatörleri basit görünse de, tek tek değerler yerine tüm sonuç kümelerini karşılaştırdıkları için sorguları kolayca reddederler. Onları yöneten dört kural vardır.
- Sütun sayısı eşleşmelidir. Her iki SELECT sorgusu da aynı sayıda sütun döndürmelidir. Uyumsuzluk durumunda işlem hemen başarısız olur ve hata mesajında sütun yerine konum belirtilir.
- Veri türleri uyumlu olmalıdır. İlk sorgunun birinci sütunu, ikinci sorgunun birinci sütunuyla eşleştirilir ve bu şekilde isme göre değil, konuma göre devam edilir. Uyumlu sayısal türler otomatik olarak dönüştürülür; karakter sütunu ile tarih sütunu karşılaştırılmaz.
- Sütun adları ilk sorgudan geliyor. İkinci ifadenin sütunlarına ne ad verdiğine bakılmaksızın, çıktıda bu durum göz ardı edilir; bu da UNION işleminin sonucunu ilk kez okuyan herkesi şaşırtır.
- ORDER BY ifadesi tüm sonuca uygulanır. Bu ifade, son SELECT sorgusundan sonra, en sona yerleştirilmelidir ve bu nedenle yukarıdaki örneklerde birleşim (union) dıştaki bir SELECT sorgusuna sarılmıştır.
UNION ve UNION ALL arasındaki performans farkı dikkate değerdir. UNION, yinelenenleri kaldırmak için birleştirilmiş sonucu sıralamalı veya hash'lemelidir, oysa UNION ALL yalnızca ekleme yapar. Yinelenenlerin imkansız veya kabul edilebilir olduğu durumlarda, büyük tablolarda UNION ALL anlamlı derecede daha hızlıdır. Bu tablolarda kullanılan sütun tanımları aşağıda açıklanmıştır. SAP HANA veri tipleri.
OperaÖnceliklilik SAP HANA SQL'i
Bir ifadede birden fazla operatör bulunduğunda, hangisinin önce değerlendirileceğine öncelik verilir. Bunu yanlış yapmak, kusursuz çalışan ancak yanlış satırları döndüren bir sorgu üretir ki bu, sözdizimi hatasından çok daha tehlikelidir.
| Sipariş Numarası | Operaları | Kategoriler |
|---|---|---|
| 1 | () | Parantezler, her zaman önce değerlendirilir. |
| 2 | + – (tek işlenen) | Tekli artı ve olumsuzlama |
| 3 | * / | Çarpma ve bölme |
| 4 | + – || | Toplama, alttraction, birleştirme |
| 5 | = != < > <= >= | karşılaştırma |
| 6 | DEĞİL | Mantıksal olumsuzlama |
| 7 | VE | Mantıksal bağlantı |
| 8 | OR | Mantıksal ayrışma |
Klasik tuzak 7. ve 8. satırlarda yer alır. VE, VEYA'dan daha sıkı bağlandığı için, koşul WHERE region = 'EAST' OR region = 'WEST' AND status = 'OPEN' şöyle okunur DOĞU ya da BATI, yani açık olanDoğuya ait her satır, durumuna bakılmaksızın döndürülür. İki bölge testinin etrafına parantez eklemek sorunu çözer.
💡 İpucu: Öncelik zaten istenen sonucu verse bile, her karma AND ve OR koşulunun etrafına parantez koyun. Sorgu kendi kendini belgeleyen bir hale gelir ve daha sonra başka bir geliştirici tarafından yapılacak düzenlemelerden etkilenmez.
Günlük kullanımda kullanılan ifade sözdizimi aşağıdaki bölümde ele alınmıştır. SAP HANA SQL'i eğitim ve daha geniş platformda SAP HANA eğitim kılavuzu serisi.





