All Products
Search
Document Center

DataWorks:Editor kode: Contoh SQL advanced (sintaksis MyBatis)

Last Updated:Jul 24, 2026

Di DataService Studio, Anda dapat menggunakan editor kode untuk membuat API. Editor ini memungkinkan Anda menulis logika kueri menggunakan SQL dasar atau advanced. SQL advanced mendukung tag-tag umum MyBatis, seperti if, choose, when, otherwise, trim, foreach, dan where. Tag-tag ini memungkinkan Anda menerapkan logika kueri kompleks, seperti memeriksa nilai null, melakukan iterasi atas beberapa nilai, melakukan kueri tabel secara dinamis, pengurutan dinamis, dan agregasi.

Catatan penggunaan

Topik ini menyediakan contoh penulisan logika kueri dengan SQL advanced saat membuat API di editor kode. Topik ini juga menjelaskan pemetaan antara kode SQL dan Request Parameters serta Response Parameters pada halaman pembuatan API. Untuk mencegah error waktu proses, gantilah tabel, bidang, dan kondisi kueri dalam contoh dengan milik Anda sendiri.

Catatan

Memberikan nilai contoh untuk parameter permintaan dan respons bersifat opsional. Jika Anda menentukan nilai contoh untuk parameter permintaan, nilai tersebut akan dimuat secara otomatis sebagai input saat Anda menguji API. Hal ini menghemat waktu karena Anda tidak perlu memasukkan nilai yang sama berulang kali. Nilai contoh hanya untuk referensi.

Untuk informasi lebih lanjut tentang cara membuat API di editor kode, lihat Create an API in script mode.

Topik ini menyediakan contoh kasus penggunaan SQL advanced (sintaksis MyBatis) berikut:

Contoh 1: Mengurutkan hasil secara kondisional

Pada contoh SQL dinamis ini, nilai parameter var menentukan urutan pengurutan.

  • Jika var bernilai 1, kueri mengurutkan hasil menggunakan ORDER BY col01.

  • Jika var bernilai 2, kueri mengurutkan hasil menggunakan ORDER BY col02.

  • Jika var bernilai 3, kueri mengurutkan hasil menggunakan ORDER BY col01,col02.

  • Jika var bernilai 4, kueri mengurutkan hasil menggunakan ORDER BY col02,col01.

Kode berikut menunjukkan contohnya.

Penting

Gantilah nama tabel, bidang, dan kondisi lain dalam contoh ini dengan milik Anda sendiri.

select col01,col02
from table_name  
<choose>
    <when test='var == 1'>
    order by col01
    </when>
    <when test='var == 2'>
    order by col02
    </when>
    <when test='var == 3'>
    order by col01,col02
    </when>
    <when test='var == 4'>
    order by col02,col01
    </when>
</choose>
  • Request parameters:

    Parameter

    Type

    Position

    Required

    Example value

    Default

    Description

    var

    INT

    QUERY

    Yes

    1

    1

    Sort order

  • Response parameters:

    Parameter

    Type

    Example value

    col01

    STRING

    shortname

    col02

    STRING

    name

Contoh 2: Melakukan kueri tabel yang berbeda secara kondisional

Contoh SQL dinamis ini melakukan kueri terhadap tabel yang berbeda berdasarkan nilai parameter var. Kueri mengembalikan data dari bidang col01.

  • Jika var bernilai 1, kueri mengambil data dari bidang col01 pada tabel table_name01.

  • Jika var bernilai 2, kueri mengambil data dari bidang col01 pada tabel table_name02.

Kode berikut menunjukkan contohnya.

Penting

Gantilah nama tabel, bidang, dan kondisi lain dalam contoh ini dengan milik Anda sendiri.

select col01
from
<choose>
 <when test='var == 1'>
 table_name01
 </when>
 <when test='var == 2'>
 table_name02
 </when>
</choose>
  • Request parameters:

    Parameter

    Type

    Position

    Required

    Example value

    Default

    var

    INT

    QUERY

    Yes

    1

    1

  • Response parameters:

    Parameter

    Type

    Example value

    col01

    STRING

    123

Contoh 3: Menyertakan klausa WHERE secara kondisional

Contoh ini menghasilkan kondisi kueri secara dinamis berdasarkan nilai area dari koleksi list, lalu melakukan kueri data berdasarkan kondisi tersebut.

Jika list tidak null, sebuah kondisi kueri dibuat dengan nilai bidang area. Koleksi list diiterasi untuk menggabungkan elemen-elemennya dengan cara tertentu, dan data untuk bidang area_id, area, dan amount dikembalikan.

Kode berikut menunjukkan contohnya.

Penting

Gantilah nama tabel, bidang, dan kondisi lain dalam contoh ini dengan milik Anda sendiri.

SELECT area_id, area, amount
FROM table_name
<where>
	<if test='list!=null'>
	area in
		<foreach collection="list" open="(" close=")" separator="," item="area">
		#{area}
		</foreach>
	</if>
</where>
  • Request parameters:

    Parameter

    Type

    Position

    Required

    Example value

    Default

    list

    STRING_LIST

    QUERY

    Yes

    Beijing,Hangzhou

    Beijing

  • Response parameters:

    Parameter

    Type

    Example value

    area_id

    STRING

    123120

    area

    STRING

    Beijing

    amount

    STRING

    50