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.

  • ➕ Tekli ve İkili: Tekli operatör bir işlenen, ikili operatör ise iki işlenen alır.
  • 🧮 Aritmetik: Toplama, alttracÇarpma, bölme ve toplama işlemleri sayısal işlemler üzerinde çalışır.
  • 🔗 Dize Birleştirme: İki dikey çizgi, dizeleri, ifadeleri veya sabitleri tek bir değerde birleştirir.
  • 🇧🇷 karşılaştırma: Eşit, daha büyük, daha küçük ve bunların kombinasyonları filtreleme için bir doğruluk değeri döndürür.
  • 🔀 Mantıklı: AND, OR ve NOT operatörleri, WHERE yan tümcesi içinde koşulları birleştirir.
  • 🧩 set Operator: UNION tekrarları kaldırır, UNION ALL tekrarları korur, INTERSECT ortak satırları döndürür, EXCEPT alt irtifatracts.
  • 📊 Örnek Uygulama: Aynı değerleri paylaşan iki tablo, her bir küme operatörünün farklı çıktılarını göstermektedir.

SAP HANA UNION ve UNION ALL 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).

set Operators SAP HANA

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;

BİRLEŞİM küme operatörü çıktısı

İ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;

UNION ALL operatör çıktısını ayarla

İ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;

INTERSECT operatör çıktısını ayarla

İ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;

Operatör çıktısını ayarla hariç

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

SSS

UNION ALL, sonuçları basitçe toplar; UNION ise ayrıca tekrarlanan elemanları da kaldırmalıdır. Çıktıda tekrarlanan elemanların imkansız veya kabul edilebilir olduğu durumlarda UNION ALL kullanın.

Evet, SAP HANA sayıyı örtük olarak dönüştürür. (Sarmalayıcı metin)ping TO_VARCHAR kullanmak yine de daha iyi bir uygulamadır, çünkü bu durumda format oturum varsayılanı yerine sizin kontrolünüz altında kalır.

Evet. Yapay zeka, karışık bir VE ve VEYA koşulunu sade bir dille yeniden ifade ederek, grubun hangisinin doğru olduğunu hemen ortaya koyuyor.ping Niyetle örtüşüyorsa, onu düzeltecek parantezleri önerir.

Evet. INTERSECT ve EXCEPT ifadeleri genellikle daha iyi performans gösterebilen bir iç birleştirme (inner join) veya NOT EXISTS koşulu olarak yeniden yazılır. Yeniden yazmayı benimsemeden önce yürütme planlarını karşılaştırın.

Herhangi bir şeyi NULL ile karşılaştırmak doğru veya yanlış yerine bilinmeyen döndürür, bu nedenle ilgili satır filtrelenir. Eşittir operatörü yerine IS NULL ve IS NOT NULL kullanın.

Bu yazıyı şu şekilde özetleyin: