Tek Sıralı İşlevleri Kullanma

Çıktıyı özelleştirmek için Tek satır işlevlerini kullanma

Oracle SQL, çeşitli görevler için kullanılabilen zengin bir yerleşik işlev kitaplığı sağlar. Bir işlevin temel yetenekleri, dizelerin büyük / küçük harfe dönüştürülmesi, dizge içi veya alt dize işlemleri, sayısal veriler üzerinde matematiksel hesaplamalar ve tarih türü değerleri üzerinde tarih işlemleri olabilir. SQL İşlevleri isteğe bağlı olarak kullanıcıdan bağımsız değişkenler alır ve zorunlu olarak bir değer döndürür.

Daha geniş bir kategoride, iki tür işlev vardır: -

Single Row functions- Tek satır işlevleri, tek satırda çalışan ve satır başına bir çıktı döndüren işlevlerdir. Örneğin, uzunluk ve durum dönüştürme işlevleri tek sıralı işlevlerdir.

Multiple Row functions - Birden çok satır işlevi, satır grupları üzerinde çalışır ve tüm satır kümesi için bir sonuç döndürür. Grup İşlevleri olarak da bilinir.

Tek sıralı fonksiyonlar

Tek satır işlevleri, karakter işlevleri, sayısal işlevler, tarih işlevleri ve dönüştürme işlevleri olabilir. Bu işlevlerin veri öğelerini değiştirmek için kullanıldığını unutmayın. Bu işlevler bir veya daha fazla girdi argümanı gerektirir ve her satırda çalışır, böylece her satır için bir çıktı değeri döndürür. Bağımsız değişken bir sütun, değişmez değer veya bir ifade olabilir. Tek satırlı işlevler SELECT deyiminde, WHERE ve ORDER BY yan tümcesinde kullanılabilir. Tek sıralı işlevler şunlar olabilir -

  • General functions- Genellikle NULL işleme işlevleri içerir. Kategori altındaki işlevler NVL, NVL2, NULLIF, COALESCE, CASE, DECODE'dur.

  • Case Conversion functions- Karakter girişini kabul eder ve bir karakter değeri döndürür. Kategori altındaki işlevler UPPER, LOWER ve INITCAP'dir.

    • UPPER işlevi bir dizeyi büyük harfe dönüştürür.

    • LOWER işlevi bir dizeyi küçük harfe dönüştürür.

    • INITCAP işlevi, bir dizenin yalnızca ilk alfabelerini büyük harfe dönüştürür.

  • Character functions- Karakter girişini kabul eder ve sayı veya karakter değerini döndürür. Kategori altındaki işlevler CONCAT, LENGTH, SUBSTR, INSTR, LPAD, RPAD, TRIM ve REPLACE'dir.

    • CONCAT işlevi iki dize değerini birleştirir.

    • LENGTH işlevi, giriş dizesinin uzunluğunu döndürür.

    • SUBSTR işlevi, belirli bir başlangıç ​​noktasından bitiş noktasına bir dizenin bir bölümünü döndürür.

    • INSTR işlevi, belirli bir dizedeki bir karakterin veya dizenin sayısal konumunu döndürür.

    • LPAD ve RPAD işlevleri, verilen dizeyi belirli bir karakterle belirli bir uzunluğa kadar doldurur.

    • TRIM işlevi, dizi girişini baştan veya sondan kırpar.

    • REPLACE işlevi, giriş dizesindeki karakterleri belirli bir karakterle değiştirir.

  • Date functions- Tarih aritmetik işlemleri tarih veya sayısal değerler döndürür. Kategori altındaki işlevler şunlardır: MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND ve TRUNC.

    • MONTHS_BETWEEN işlevi, iki tarih arasındaki ayların sayısını döndürür.

    • ADD_MONTHS işlevi, bir giriş tarihine 'n' ay sayısı ekler.

    • SONRAKİ_GÜN işlevi, belirtilen tarihin sonraki gününü döndürür.

    • LAST_DAY işlevi, giriş tarihinin ayının son gününü döndürür.

    • YUVARLA ve TRUNC işlevleri, tarih değerini yuvarlamak ve kırpmak için kullanılır.

  • Number functions- Sayısal girişi kabul eder ve sayısal değerler döndürür. Kategori altındaki fonksiyonlar ROUND, TRUNC ve MOD'dur.

    • YUVARLA ve TRUNC işlevleri, sayı değerini yuvarlamak ve kesmek için kullanılır.

    • MOD, bölme işleminin kalanını iki sayı arasında döndürmek için kullanılır.

Çizimler

Genel fonksiyonlar

Aşağıdaki SELECT sorgusu NVL işlevinin kullanımını gösterir.

SELECT first_name, last_name, salary, NVL (commission_pct,0) 
FROM employees
WHERE rownum < 5;

FIRST_NAME           LAST_NAME                     SALARY NVL(COMMISSION_PCT,0)
-------------------- ------------------------- ---------- ---------------------
Steven               King                           24000                     0
Neena                Kochhar                        17000                     0
Lex                  De Haan                        17000                     0
Alexander            Hunold                          9000                     0

Vaka Dönüştürme işlevleri

Aşağıdaki SELECT sorgusu, büyük / küçük harf dönüştürme işlevlerinin kullanımını gösterir.

SELECT UPPER (first_name), INITCAP (last_name), LOWER (job_id)
FROM employees
WHERE rownum < 5;

UPPER(FIRST_NAME)    INITCAP(LAST_NAME)        LOWER(JOB_
-------------------- ------------------------- ----------
STEVEN               King                      ad_pres
NEENA                Kochhar                   ad_vp
LEX                  De Haan                   ad_vp
ALEXANDER            Hunold                    it_prog

Karakter fonksiyonları

Aşağıdaki SELECT sorgusu, iki dize değerini birleştirmek için CONCAT işlevinin kullanımını gösterir.

SELECT CONCAT (first_name, last_name) 
FROM employees
WHERE rownum < 5;

CONCAT(FIRST_NAME,LAST_NAME)
--------------------------------
EllenAbel
SundarAnde
MozheAtkinson
DavidAustin

Aşağıdaki SELECT sorgusu, SUBSTR ve INSTR işlevlerinin kullanımını gösterir. SUBSTR işlevi, girdi dizesinin 1. konumdan 5. konuma olan kısmını döndürür. INSTR işlevi, addaki 'a' karakterinin sayısal konumunu döndürür.

SELECT SUBSTR (first_name,1,5), INSTR (first_name,'a')
FROM employees
WHERE rownum < 5;

SUBST INSTR(FIRST_NAME,'A')
----- ---------------------
Ellen                     0
Sunda                     5
Mozhe                     0
David                     2

Aşağıdaki SELECT sorgusu, çalışan ve iş bilgilerini güzel bir şekilde yazdırmak için LPAD ve RPAD kullanımını gösterir.

SELECT RPAD(first_name,10,'_')||LPAD (job_id,15,'_')
FROM employees
WHERE rownum < 5;

RPAD(FIRST_NAME,10,'_')||
-------------------------
Steven____________AD_PRES
Neena_______________AD_VP
Lex_________________AD_VP
Alexander_________IT_PROG

Sayı işlevleri

Aşağıdaki SELECT sorgusu YUVARLA ve TRUNC işlevlerinin kullanımını gösterir.

SELECT ROUND (1372.472,1)
FROM dual;

ROUND(1372.472,1)
-----------------
           1372.5

SELECT TRUNC (72183,-2)
FROM dual;

TRUNC(72183,-2)
---------------
          72100

Tarih aritmetik işlemleri

Aşağıdaki SELECT sorgusu, çalışanın işe alınma tarihi ile sistem tarihinin farkının yapıldığı bir tarih aritmetik fonksiyonunu gösterir.

SELECT employee_id, (sysdate - hire_date) Employment_days
FROM employees
WHERE rownum < 5;

EMPLOYEE_ID EMPLOYMENT_DAYS
----------- ---------------
        100      3698.61877
        101      2871.61877
        102      4583.61877
        103      2767.61877

Tarih fonksiyonları

Aşağıdaki SELECT sorgusu MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY ve LAST_DAY işlevlerinin kullanımını gösterir.

SELECT employee_id, MONTHS_BETWEEN (sysdate, hire_date) Employment_months
FROM employees
WHERE rownum < 5;

EMPLOYEE_ID EMPLOYMENT_MONTHS
----------- -----------------
        100        121.504216
        101        94.3751837
        102        150.633248
        103        90.9558289

SELECT ADD_MONTHS (sysdate, 5), NEXT_DAY (sysdate), LAST_DAY (sysdate)
FROM dual;

ADD_MONTH NEXT_DAY( LAST_DAY(
--------- --------- ---------
01-JAN-14 05-AUG-13 31-AUG-13