すべてのプロダクト
Search
ドキュメントセンター

DataWorks:コードエディター:高度な SQL (MyBatis 構文) の例

最終更新日:Jul 24, 2026

DataService Studio では、コードエディターを使用して API を作成できます。このエディターでは、基本 SQL または高度な SQL を使用してクエリロジックを記述できます。高度な SQL は、if、choose、when、otherwise、trim、foreach、where など、一般的な MyBatis タグをサポートしています。これらのタグを使用すると、null 値のチェック、複数値の反復、テーブルの動的なクエリ、動的なソート、集約などの複雑なクエリロジックを実装できます。

使用上の注意

このトピックでは、コードエディターで API を作成する際に、高度な SQL を使用してクエリロジックを記述する例を紹介します。また、SQL コードと、API 作成ページの リクエストパラメーター および 戻りパラメーター の対応関係についても説明します。ランタイムエラーを防ぐために、例に記載されているテーブル、フィールド、クエリ条件はお客様の環境に合わせて置き換えてください。

説明

リクエストパラメーターとレスポンスパラメーターのサンプル値の指定は任意です。リクエストパラメーターにサンプル値を指定すると、API のテスト時に入力として自動的に読み込まれます。これにより、テストのたびに同じ値を入力する手間を省けます。サンプル値は参照用です。

コードエディターで API を作成する方法の詳細については、「スクリプトモードで API を作成」をご参照ください。

このトピックでは、次の高度な SQL (MyBatis 構文) のユースケースの例を紹介します:

例 1:結果の条件付きソート

この動的 SQL の例では、var パラメーターの値によってソート順が決まります。

  • var が 1 の場合、クエリは ORDER BY col01 を使用して結果をソートします。

  • var が 2 の場合、クエリは ORDER BY col02 を使用して結果をソートします。

  • var が 3 の場合、クエリは ORDER BY col01,col02 を使用して結果をソートします。

  • var が 4 の場合、クエリは ORDER BY col02,col01 を使用して結果をソートします。

以下にコード例を示します。

重要

この例のテーブル名、フィールド、その他の条件はお客様の環境に合わせて置き換えてください。

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>
  • リクエストパラメーター:

    パラメーター

    型

    位置

    必須

    サンプル値

    デフォルト

    説明

    var

    INT

    QUERY

    はい

    1

    1

    ソート順

  • レスポンスパラメーター:

    パラメーター

    型

    サンプル値

    col01

    STRING

    shortname

    col02

    STRING

    name

例 2:異なるテーブルの条件付きクエリ

この動的 SQL の例では、var パラメーターの値に基づいて異なるテーブルをクエリします。クエリは col01 フィールドのデータを返します。

  • var が 1 の場合、クエリは table_name01 テーブルの col01 フィールドからデータを取得します。

  • var が 2 の場合、クエリは table_name02 テーブルの col01 フィールドからデータを取得します。

以下にコード例を示します。

重要

この例のテーブル名、フィールド、その他の条件はお客様の環境に合わせて置き換えてください。

select col01
from
<choose>
 <when test='var == 1'>
 table_name01
 </when>
 <when test='var == 2'>
 table_name02
 </when>
</choose>
  • リクエストパラメーター:

    パラメーター

    型

    位置

    必須

    サンプル値

    デフォルト

    var

    INT

    QUERY

    はい

    1

    1

  • レスポンスパラメーター:

    パラメーター

    型

    サンプル値

    col01

    STRING

    123

例 3:WHERE 句の条件付き追加

この例では、list コレクションの area 値に基づいてクエリ条件を動的に生成し、条件に基づいてデータをクエリします。

list が null でない場合、area フィールドの値を使用してクエリ条件が生成されます。さらに、list コレクションを反復して要素を指定の方法で連結し、area_id、area、amount フィールドのデータを返します。

以下にコード例を示します。

重要

この例のテーブル名、フィールド、その他の条件はお客様の環境に合わせて置き換えてください。

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>
  • リクエストパラメーター:

    パラメーター

    型

    位置

    必須

    サンプル値

    デフォルト

    list

    STRING_LIST

    QUERY

    はい

    Beijing,Hangzhou

  • レスポンスパラメーター:

    パラメーター

    型

    サンプル値

    area_id

    STRING

    123120

    area

    STRING

    Beijing

    amount

    STRING

    50