SAP Fungsi SQL HANA: Tipe & Contoh

โšก Ringkasan Cerdas

SAP Fungsi SQL HANA mengubah nilai di dalam kueri tanpa memindahkan data ke lapisan aplikasi. Tujuh kategori mencakup konversi tipe data, tanggal dan waktu, teks lengkap, angka, string, jendela, dan operasi lain-lain.

  • ๐Ÿ”„ Fungsi Konversi: CAST, TO_BIGINT, TO_ALPHANUM, dan TO_BINARY mengubah nilai dari satu tipe data ke tipe data lainnya.
  • ๐Ÿ“… Fungsi Tanggal dan Waktu: Perintah ADD_DAYS, ADD_MONTHS, dan ADD_SECONDS menggeser atau memformat ulang nilai tanggal dan waktu.
  • ๐Ÿ” Fungsi Teks Lengkap: SCORE dan fungsi terkaitnya memberi peringkat pada hasil yang dikembalikan oleh pencarian teks.
  • ๐Ÿ”ข Fungsi Bilangan: ABS, ROUND, dan POWER menerima input numerik dan mengembalikan hasil numerik.
  • ๐Ÿ”ค Fungsi String: ASCII, CHAR, dan CONCAT memproses input karakter dan mengembalikan nilai turunan.
  • ๐ŸชŸ Fungsi Jendela: RANK, DENSE_RANK, dan ROW_NUMBER membagi kumpulan hasil ke dalam partisi jendela.
  • ๐Ÿงฐ Miscellaneous: CONVERT_CURRENCY dan CURRENT_SCHEMA menangani tugas di luar enam kelompok lainnya.

SAP Fungsi SQL HANA

SAP Fungsi SQL HANA

SAP HANA menyediakan berikut ini SAP Fungsi HANA-

  1. Fungsi Konversi Tipe Data โ€“ Fungsi konversi Tipe Data digunakan untuk mengubah satu tipe data ke tipe data lainnya. Di bawah ini adalah daftar fungsi Konversi Tipe Data-Misalnya CAST, TO_ALPHANUM, TO_BIGINT, TO_BINARY dll.
  2. Fungsi Tanggal Waktu โ€“ Fungsi Tanggal dan Waktu digunakan untuk mengkonversi Tanggal/Waktu ke format yang berbeda. Contoh: ADD_DAYS, ADD_MONTHS, ADD_SECOND, dll.
  3. Fungsi Teks Lengkap โ€“ Fungsi Fulltext digunakan untuk pencarian teks. Contoh: SCORE, dll.
  4. Fungsi Angka โ€“ Fungsi angka menerima nilai numerik, atau string dengan karakter numerik, sebagai input dan mengembalikan nilai numerik. Contoh: ABS, ROUND, POWER, dll.
  5. Fungsi String โ€“ Fungsi string menerima string sebagai input, memprosesnya, dan mengembalikan nilai sesuai dengan fungsi tersebut. Contoh: (ASCII, CHAR, CONCAT, dll.)
  6. Fungsi Jendela โ€“ Fungsi Window memungkinkan pengguna untuk membagi hasil kueri menjadi beberapa kelompok baris yang diberi nama partisi jendela. Contohnya RANK(), DENSE_RANK(), ROW_NUMBER(), dll.
  7. Fungsi Lain-Lain- Ada beberapa fungsi lagi yang digunakan untuk pekerjaan lain-lain. Misalnya โ€“ CONVERT_CURRENCY, CURRENT_SCHEMA, dll.

Setiap fungsi di atas dievaluasi di dalam mesin basis data, itulah sebabnya memasukkan logika ke dalam fungsi hampir selalu lebih cepat daripada mengambil baris dan memprosesnya di dalam aplikasi. Contoh di bawah ini menggunakan tabel DUMMY, tabel sistem satu baris yang ada semata-mata agar ekspresi dapat diuji tanpa menyentuh data sebenarnya.

Fungsi Skalar, Agregat, dan Jendela

Sebelum membahas contoh-contohnya, ada satu perbedaan yang menentukan bagaimana sebuah fungsi berperilaku dalam sebuah kueri: berapa banyak baris yang masuk, dan berapa banyak yang keluar.

Kategori Jumlah baris masuk : jumlah baris keluar Perlu menggunakan GROUP BY? contoh
Skalar Satu baris ke satu baris Tidak UPPER, ROUND, TO_DATE, CAST
Agregat Banyak baris menjadi satu baris Ya, kecuali jika seluruh set tersebut merupakan satu kelompok. JUMLAH, AVG, JUMLAH, MINIMUM, MAKS
Jendela Banyak baris ke banyak baris Tidak, yang digunakan adalah OVER. PERINGKAT, PERINGKAT_PADAT, NOMOR_BARIS, KETERLAMBATAN
tabel Mengembalikan kumpulan hasil Digunakan dalam klausa FROM TANGGAL_HASIL_SERI

Konsekuensi praktisnya adalah bahwa fungsi agregat menghilangkan detail, sedangkan fungsi jendela mempertahankannya. Meminta setiap karyawan beserta rata-rata departemen mereka membutuhkan fungsi jendela, karena GROUP BY akan menghapus seluruh baris individual.

Umum SAP Fungsi HANA Beserta Contohnya

Pernyataan-pernyataan di bawah ini dapat langsung disalin ke konsol SQL. Masing-masing menunjukkan satu kategori dari daftar di atas.

1) Fungsi string. Fungsi ini menerima input berupa karakter dan mengembalikan nilai turunan.

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) Fungsi angka. Perilaku pembulatan perlu diuji, karena ROUND menggunakan pembulatan komersial sedangkan FLOOR dan CEIL selalu bergerak ke satu arah.

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) Fungsi tanggal dan waktu. Ini adalah dokumen-dokumen yang paling sering dibutuhkan untuk pelaporan periodik.

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) Fungsi konversi. Konversi eksplisit mencegah pemaksaan tipe diam-diam yang memperlambat klausa WHERE.

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;

Perilaku tipe dan batasan dari setiap tipe target dibahas dalam SAP Tipe data HANA.

Penjelasan Fungsi Jendela

Fungsi jendela melakukan perhitungan di seluruh kumpulan baris yang terkait dengan baris saat ini, tanpa menggabungkannya. Klausa OVER mendefinisikan kumpulan tersebut, dan memiliki dua bagian opsional: PARTITION BY membagi data menjadi beberapa kelompok, dan ORDER BY menetapkan urutan di dalam setiap kelompok.

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;

Ketiga fungsi pemeringkatan tersebut hanya berbeda ketika nilainya sama:

  • ROW_NUMBER Tidak pernah seri. Dua gaji yang identik tetap menerima peringkat 1 dan 2, yang dipilih secara acak.
  • RANK Memberikan nomor yang sama pada baris yang sama lalu melompati satu baris. Dua baris di nomor 1 diikuti oleh 3.
  • PADAT_RANK Memberikan nomor yang sama pada baris yang sama dan tidak melewatkan satu baris pun. Dua baris dengan nomor 1 diikuti oleh baris dengan nomor 2.

Gunakan ROW_NUMBER untuk menghilangkan duplikasi, RANK untuk penempatan gaya kompetisi, dan DENSE_RANK ketika urutan harus tetap tidak terputus. Simbol perbandingan dan logika yang digunakan bersama fungsi-fungsi ini dibahas dalam SAP Operator HANA, dan struktur pernyataan dalam SAP HANA SQL.

Pertanyaan Umum Demo Slot

DUMMY adalah tabel sistem yang hanya berisi satu baris. Tabel ini memungkinkan suatu ekspresi atau fungsi dievaluasi dalam pernyataan SELECT tanpa merujuk pada tabel nyata apa pun.

Keduanya memberikan nomor yang sama untuk baris yang sama. RANK kemudian melewati nilai berikutnya, sehingga dua nilai pertama diikuti oleh nilai ketiga. DENSE_RANK tidak melewati nilai berikutnya, sehingga dua nilai pertama diikuti oleh nilai kedua.

Ya. Mendeskripsikan transformasi dalam bahasa sederhana akan menghasilkan fungsi dan sintaks yang sesuai, yang lebih cepat daripada memindai daftar referensi yang berisi beberapa ratus entri.

Seringkali. Sebuah fungsi yang membungkus kolom yang difilter mencegah pemfilteran yang efisien, dan AI dapat menyusun ulang predikat sehingga kolom tersebut tetap tidak tersentuh. Konfirmasikan dengan rencana eksekusi.

Ya, tetapi menerapkannya pada kolom akan memaksa evaluasi pada setiap baris. Sebisa mungkin, ubah konstanta tersebut, sehingga kolom tetap dapat difilter secara efisien.

Ringkaslah postingan ini dengan: