Todos los productos
Search
Centro de documentos

DataWorks:Editor de código: ejemplos avanzados de SQL (sintaxis MyBatis)

Última actualización: Sep 04, 2026

En DataService Studio, puede utilizar el editor de código para crear APIs. Este editor le permite escribir la lógica de consulta mediante SQL básico o avanzado. El SQL avanzado admite etiquetas comunes de MyBatis, como if, choose, when, otherwise, trim, foreach y where. Estas etiquetas permiten implementar lógicas de consulta complejas, como la comprobación de valores nulos, la iteración sobre varios valores, consultas dinámicas a tablas, ordenamiento dinámico y agregaciones.

Notas de uso

Este tema proporciona ejemplos sobre cómo escribir lógica de consulta con SQL avanzado al crear una API en el editor de código. También explica la relación entre el código SQL y los Request Parameters y Response Parameters en la página de creación de la API. Para evitar errores en tiempo de ejecución, reemplace las tablas, los campos y las condiciones de consulta de los ejemplos por los suyos propios.

Nota

Proporcionar valores de ejemplo para los parámetros de solicitud y respuesta es opcional. Si especifica un valor de ejemplo para un parámetro de solicitud, este se carga automáticamente como entrada cuando prueba la API. Esto le evita tener que ingresar los mismos valores en cada prueba. Los valores de ejemplo son solo de referencia.

Para obtener más información sobre cómo crear una API en el editor de código, consulte Create an API in script mode.

Este tema presenta ejemplos de los siguientes casos de uso de SQL avanzado (sintaxis MyBatis):

Ejemplo 1: Ordenar resultados condicionalmente

En este ejemplo de SQL dinámico, el valor del parámetro var determina el orden de clasificación.

  • Si var es 1, la consulta ordena los resultados mediante ORDER BY col01.

  • Si var es 2, la consulta ordena los resultados mediante ORDER BY col02.

  • Si var es 3, la consulta ordena los resultados mediante ORDER BY col01,col02.

  • Si var es 4, la consulta ordena los resultados mediante ORDER BY col02,col01.

A continuación se muestra un ejemplo de código.

Importante

Reemplace el nombre de la tabla, los campos y otras condiciones de este ejemplo por los suyos propios.

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>
  • Parámetros de solicitud:

    Parámetro

    Tipo

    Posición

    Obligatorio

    Valor de ejemplo

    Predeterminado

    Descripción

    var

    INT

    QUERY

    Sí

    1

    1

    Orden de clasificación

  • Parámetros de respuesta:

    Parámetro

    Tipo

    Valor de ejemplo

    col01

    STRING

    shortname

    col02

    STRING

    name

Ejemplo 2: Consultar diferentes tablas condicionalmente

Este ejemplo de SQL dinámico consulta distintas tablas según el valor del parámetro var. La consulta devuelve datos del campo col01.

  • Si var es 1, la consulta recupera datos del campo col01 de la tabla table_name01.

  • Si var es 2, la consulta recupera datos del campo col01 de la tabla table_name02.

A continuación se muestra un ejemplo de código.

Importante

Reemplace el nombre de la tabla, los campos y otras condiciones de este ejemplo por los suyos propios.

select col01
from
<choose>
 <when test='var == 1'>
 table_name01
 </when>
 <when test='var == 2'>
 table_name02
 </when>
</choose>
  • Parámetros de solicitud:

    Parámetro

    Tipo

    Posición

    Obligatorio

    Valor de ejemplo

    Predeterminado

    var

    INT

    QUERY

    Sí

    1

    1

  • Parámetros de respuesta:

    Parámetro

    Tipo

    Valor de ejemplo

    col01

    STRING

    123

Ejemplo 3: Incluir una cláusula WHERE condicionalmente

Este ejemplo genera dinámicamente condiciones de consulta basadas en el valor area de la colección list, y consulta los datos según dichas condiciones.

Si list no es null, se genera una condición de consulta con el valor del campo area, se itera sobre la colección list para concatenar sus elementos de una manera específica, y se devuelven los datos correspondientes a los campos area_id, area y amount.

A continuación se muestra un ejemplo de código.

Importante

Reemplace el nombre de la tabla, los campos y otras condiciones de este ejemplo por los suyos propios.

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>
  • Parámetros de solicitud:

    Parámetro

    Tipo

    Posición

    Obligatorio

    Valor de ejemplo

    Predeterminado

    list

    STRING_LIST

    QUERY

    Sí

    Beijing,Hangzhou

    Beijing

  • Parámetros de respuesta:

    Parámetro

    Tipo

    Valor de ejemplo

    area_id

    STRING

    123120

    area

    STRING

    Beijing

    amount

    STRING

    50