SAP HANA SQL Fonksiyonları: Türleri ve Örnekleri
⚡ Akıllı Özet
SAP HANA SQL Fonksiyonları, verileri uygulama katmanına taşımadan sorgu içindeki değerleri dönüştürür. Yedi kategori veri türü dönüştürme, tarih ve saat, tam metin, sayı, dize, pencere ve çeşitli işlemleri kapsar.

SAP HANA SQL Fonksiyonları
SAP HANA aşağıdakileri sağlar SAP HANA İşlevleri-
- Veri Türü Dönüştürme İşlevi – Veri Türü dönüştürme işlevi, bir veri türünü diğerine dönüştürmek için kullanılır. Aşağıda Veri Türü Dönüştürme işlevinin listesi bulunmaktadır; örneğin CAST, TO_ALPHANUM, TO_BIGINT, TO_BINARY vb.
- Tarih Saat İşlevleri – Tarih ve saat fonksiyonları, tarih/saati farklı bir biçime dönüştürmek için kullanılır. Örnek: ADD_DAYS, ADD_MONTHS, ADD_SECOND, vb.
- Tam Metin İşlevleri – Tam metin arama fonksiyonları metin arama için kullanılır. Örnek: SCORE vb.
- Sayı İşlevleri – Sayı fonksiyonları, girdi olarak sayısal bir değer veya sayısal karakterler içeren bir dize alır ve sayısal değerler döndürür. Örnek: ABS, ROUND, POWER, vb.
- Dize İşlevleri – Dize fonksiyonları, girdi olarak bir dize alır, onu işler ve fonksiyona göre bir değer döndürür. Örnek: (ASCII, CHAR, CONCAT, vb.)
- Pencere İşlevleri – Pencere fonksiyonları, kullanıcının bir sorgunun sonuç kümesini pencere bölümü adı verilen satır gruplarına ayırmasına olanak tanır. Örnek: RANK(), DENSE_RANK(), ROW_NUMBER(), vb.
- Çeşitli Fonksiyon- Çeşitli işler için kullanılan birkaç fonksiyon daha var. Örn – CONVERT_CURRENCY, CURRENT_SCHEMA, vb.
Yukarıdaki her fonksiyon veritabanı motoru içinde değerlendirilir; bu nedenle mantığı bir fonksiyona yerleştirmek, satırları çekip uygulamada işlemekten neredeyse her zaman daha hızlıdır. Aşağıdaki örnekler, gerçek verilere dokunmadan bir ifadenin test edilebilmesi için var olan tek satırlı bir sistem tablosu olan DUMMY tablosunu kullanır.
Skalar, Toplu ve Pencere Fonksiyonları
Örneklerden önce, bir fonksiyonun sorguda nasıl davrandığını belirleyen bir ayrım vardır: kaç satır girer ve kaç satır çıkar.
| Kategoriler | Gelen satır sayısı : Giden satır sayısı | GROUP BY gerekli mi? | Örnekler |
|---|---|---|---|
| sayısal | Bir sıra bir sıraya | Yok hayır | ÜST, YUVARLAK, BUGÜNE KADAR, DÖKÜM |
| toplam | Birden çok satırı tek satıra | Evet, eğer tüm set tek bir grup değilse. | TOPLA, AVG, SAYI, MİN, MAKS |
| Pencere | Birçok satırdan birçok satıra | Hayır, onun yerine OVER kullanıyor. | SIRALAMA, YOĞUN SIRALAMA, SATIR NUMARASI, GECİKME |
| tablo | Sonuç kümesini döndürür. | FROM yan tümcesinde kullanılır | SERİ_OLUŞTURMA_TARİHİ |
Pratik sonuç olarak, toplama işlemi ayrıntıları ortadan kaldırırken, pencere fonksiyonu ayrıntıları korur. Her çalışanı departman ortalamasıyla birlikte istemek için pencere fonksiyonuna ihtiyaç vardır, çünkü GROUP BY işlemi tek tek satırları tamamen kaldıracaktır.
ortak SAP Örneklerle HANA Fonksiyonları
Aşağıdaki ifadeler doğrudan SQL konsoluna yapıştırılabilir. Her biri yukarıdaki listeden bir kategoriyi göstermektedir.
1) Dize fonksiyonları. Bunlar karakter girdisi alır ve türetilmiş bir değer döndürür.
SELECT UPPER('sap hana') AS UPPER_TEXT, LENGTH('SAP HANA') AS TEXT_LENGTH, CONCAT('SAP ', 'HANA') AS JOINED, SUBSTRING('SAP HANA', 5, 4) AS PART, REPLACE('SAP HANA', 'HANA', 'S/4') AS SWAPPED, TRIM(' padded ') AS CLEANED FROM DUMMY;
2) Sayı fonksiyonları. Yuvarlama davranışını test etmekte fayda var, çünkü ROUND ticari yuvarlama yöntemini kullanırken FLOOR ve CEIL her zaman tek yönde hareket eder.
SELECT ABS(-45.7) AS ABSOLUTE_VALUE, ROUND(123.4567, 2) AS ROUNDED, FLOOR(9.9) AS ROUNDED_DOWN, CEIL(9.1) AS ROUNDED_UP, POWER(2, 10) AS RAISED, MOD(17, 5) AS REMAINDER FROM DUMMY;
3) Tarih ve saat fonksiyonları. Bunlar, dönem raporlaması için en sık ihtiyaç duyulanlardır.
SELECT CURRENT_DATE AS TODAY, ADD_DAYS(CURRENT_DATE, 30) AS IN_30_DAYS, ADD_MONTHS(CURRENT_DATE, -1) AS LAST_MONTH, DAYS_BETWEEN('2026-01-01', CURRENT_DATE) AS ELAPSED, LAST_DAY(CURRENT_DATE) AS MONTH_END, WEEKDAY(CURRENT_DATE) AS DAY_INDEX FROM DUMMY;
4) Dönüştürme fonksiyonları. Açık dönüştürme, WHERE yan tümcesini yavaşlatan sessiz tür dönüştürmeyi önler.
SELECT CAST('1234' AS INTEGER) AS AS_NUMBER, TO_VARCHAR(CURRENT_DATE, 'DD.MM.YYYY') AS AS_TEXT, TO_DECIMAL(1234.5678, 10, 2) AS AS_DECIMAL FROM DUMMY;
Tür davranışları ve her hedef türünün sınırları şu bölümde ele alınmıştır: SAP HANA veri tipleri.
Pencere Fonksiyonları Açıklaması
Pencere fonksiyonu, mevcut satırla ilgili bir dizi satır üzerinde, bunları birleştirmeden bir hesaplama gerçekleştirir. OVER yan tümcesi bu kümeyi tanımlar ve iki isteğe bağlı bölümü vardır: PARTITION BY verileri gruplara ayırır ve ORDER BY her grup içindeki sırayı sabitler.
SELECT DEPARTMENT, EMP_NAME, SALARY, ROW_NUMBER() OVER (PARTITION BY DEPARTMENT ORDER BY SALARY DESC) AS ROW_NUM, RANK() OVER (PARTITION BY DEPARTMENT ORDER BY SALARY DESC) AS RANKING, DENSE_RANK() OVER (PARTITION BY DEPARTMENT ORDER BY SALARY DESC) AS DENSE_RANKING, SUM(SALARY) OVER (PARTITION BY DEPARTMENT) AS DEPT_TOTAL FROM DHK_SCHEMA.EMPLOYEE;
Üç sıralama fonksiyonu yalnızca değerler eşit olduğunda farklılık gösterir:
- SATIR NUMARASI Beraberlik asla olmaz. İki özdeş maaş yine de keyfi olarak seçilen 1 ve 2 puanlarını alır.
- RANK Eşit sayıda satıra aynı numara verilir ve ardından atlanır. 1 numaralı iki satırdan sonra 3 numaralı satır gelir.
- DENSE_RANK Eşit sayıdaki satırlara aynı numarayı verir ve atlamaz. 1 numaralı iki satırın ardından 2 numaralı satır gelir.
ROW_NUMBER'ı tekrarlanan kayıtları kaldırmak için, RANK'ı rekabetçi sıralama için ve DENSE_RANK'ı dizinin kesintisiz kalması gerektiğinde kullanın. Bu işlevlerle birlikte kullanılan karşılaştırma ve mantıksal semboller aşağıdaki bölümde ele alınmıştır. SAP HANA operatörlerive ifade yapısı SAP HANA SQL'i.
