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

DataWorks:コードエディターで API を作成するために使用される高度な SQL 構文のサンプルコード

最終更新日:Jan 11, 2025

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

使用上の注意

このトピックでは、コードエディターを使用して API を作成する場合に、高度な SQL ステートメントを使用してクエリロジックを実装する方法のサンプルコードを提供します。また、SQL ステートメントと API の [リクエストパラメーター] および [レスポンスパラメーター] とのマッピングについても説明します。ビジネス要件に基づいて、サンプルコードのテーブル名、フィールド名、およびクエリ条件を置き換える必要があります。

説明

API を作成する際に、リクエストパラメーターとレスポンスパラメーターのサンプル値は必須ではありません。API をテストするたびにリクエストパラメーターに同じ値を使用する場合、サンプル値はリクエストパラメーターの入力として自動的にロードされます。これにより、リクエストパラメーターの値を繰り返し指定する必要がなくなります。サンプル値は参照用です。

コードエディターを使用して API を作成する方法については、「コードエディターを使用した API の作成」をご参照ください。

このトピックでは、高度な SQL 構文が使用されている以下の例を示します。

例 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>

次の図は、コードエディターを使用して API を作成するために使用される構成の例を示しています。ビジネス要件に基づいてサンプル値を置き換えることができます。image.png

  • リクエストパラメーター

    パラメーター名

    タイプ

    位置

    必須

    サンプル値

    デフォルト値

    説明

    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>

次の図は、コードエディターを使用して API を作成するために使用される構成の例を示しています。ビジネス要件に基づいてサンプル値を置き換えることができます。image.png

  • リクエストパラメーター

    パラメーター名

    タイプ

    位置

    必須

    サンプル値

    デフォルト値

    var

    INT

    QUERY

    はい

    1

    1

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

    パラメーター名

    タイプ

    サンプル値

    col01

    STRING

    123

例 3:フィールドの値が null かどうかによって WHERE 句を保持するかどうかを決定する

この例では、list コレクションの area パラメーターの値に基づいてクエリ条件が動的に生成されます。次に、その条件に基づいてデータがクエリされます。

list コレクションが null でない場合、area フィールドの値を含むクエリ条件が生成されます。次に、クエリ条件に基づいて list コレクションがトラバースされ、コレクション内の要素が指定された方法で連結されます。その結果、area_idarea、および 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>

次の図は、コードエディターを使用して API を作成するために使用される構成の例を示しています。ビジネス要件に基づいてサンプル値を置き換えることができます。image.png

  • リクエストパラメーター

    パラメーター名

    タイプ

    位置

    必須

    サンプル値

    デフォルト値

    list

    STRING_LIST

    QUERY

    はい

    Beijing,Hangzhou

    Beijing

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

    パラメーター名

    タイプ

    サンプル値

    area_id

    STRING

    123120

    area

    STRING

    Beijing

    amount

    STRING

    50