全部产品
Search
文档中心

AnalyticDB:Fungsi alur kontrol

更新时间:Jun 26, 2025

Anda dapat menggunakan fungsi alur kontrol untuk mengevaluasi kondisi dalam kueri SQL. Topik ini menjelaskan sintaksis fungsi alur kontrol di AnalyticDB for MySQL serta memberikan contoh penggunaannya.

Data sampel

Dalam contoh ini, tabel bernama conditiontest digunakan untuk menguji fungsi alur kontrol.

Jalankan pernyataan berikut untuk membuat tabel conditiontest dan menyisipkan data ke dalamnya:

CREATE TABLE conditiontest(a INT) DISTRIBUTED BY HASH(a);
INSERT INTO conditiontest VALUES (1),(2),(3);

CASE

Sintaksis 1

CASE expression
    WHEN value THEN result
    [WHEN value THEN result ...]
    [ELSE result]
    END   
  • Deskripsi: Fungsi ini membandingkan nilai parameter value dengan nilai parameter expression secara berurutan. Jika nilai parameter value sama dengan nilai parameter expression, fungsi ini mengembalikan nilai result dari parameter value. Namun, jika tidak ada nilai parameter value yang sesuai dengan nilai parameter expression, fungsi ini mengembalikan nilai result dalam klausa ELSE.

  • Contoh:

    SELECT a,
          CASE a
          WHEN 1 THEN 'one'
          WHEN 2 THEN 'two'
          ELSE 'three'
          END as caseresult
    FROM conditiontest;

    Hasil sampel:

    +---+------------+
    | a | caseresult |
    +---+------------+
    | 2 | two        |
    | 1 | one        |
    | 3 | three      |
    +---+------------+

Sintaksis 2

CASE
    WHEN condition THEN result
    [WHEN condition THEN result...]
    [ELSE result]
    END
  • Deskripsi: Fungsi ini memeriksa nilai parameter condition secara berurutan. Jika nilai parameter condition adalah true, fungsi ini mengembalikan nilai result dari parameter condition. Jika semua nilai parameter condition adalah false, fungsi ini mengembalikan nilai result dalam klausa ELSE.

  • Contoh:

    SELECT a,
          CASE
          WHEN a=1 THEN 'one1'
          WHEN a=2 THEN 'two2'
          ELSE 'three3'
          END as caseresult
    FROM conditiontest;

    Hasil sampel:

    +---+------------+
    | a | caseresult |
    +---+------------+
    | 1 | one1       |
    | 3 | three3     |
    | 2 | two2     	 |
    +---+------------+

IF

Sintaksis 1

IF(condition, true_value)
  • Deskripsi: Jika nilai parameter condition adalah true, fungsi ini mengembalikan nilai parameter true_value. Sebaliknya, fungsi ini mengembalikan null.

  • Contoh:

    SELECT IF((2+3)>4,5);
    +-------+
    | _col0 |
    +-------+
    |     5 |

Sintaksis 2

IF(condition, true_value, false_value)
  • Deskripsi: Jika nilai parameter condition adalah true, fungsi ini mengembalikan nilai parameter true_value. Sebaliknya, fungsi ini mengembalikan nilai parameter false_value.

  • Contoh:

    SELECT IF((2+3)<5,5,6);
    +-------+
    | _col0 |
    +-------+
    |     6 |

IFNULL

IFNULL(expr1,expr2)
  • Deskripsi: Jika nilai parameter expr1 tidak null, fungsi ini mengembalikan nilai parameter expr1. Namun, jika nilainya null, fungsi ini mengembalikan nilai parameter expr2.

  • Contoh:

    Contoh 1:

    SELECT IFNULL(NULL,2);
    +-------+
    | _col0 |
    +-------+
    |     2 |
    +-------+

    Contoh 2:

    SELECT IFNULL(1,0);
    +-------+
    | _col0 |
    +-------+
    |     1 |
    +-------+

NULLIF

NULLIF(expr1,expr2)
  • Deskripsi: Jika nilai parameter expr1 sama dengan nilai parameter expr2, fungsi ini mengembalikan null. Sebaliknya, fungsi ini mengembalikan nilai parameter expr1.

  • Contoh:

    Contoh 1:

    SELECT NULLIF (2,1);
    +-------+
    | _col0 |
    +-------+
    |     2 |
    +-------+

    Contoh 2:

    SELECT NULLIF (2,2);
    +-------+
    | _col0 |
    +-------+
    | NULL  |
    +-------+