数据服务支持通过脚本模式来生成API,脚本模式下支持基础SQL和高级SQL,其中高级SQL涵盖了Mybatis语法的常见标签类型:if、choose、when、otherwise、trim、foreach、where,您可以借助标签语法来灵活实现空值校验、多值遍历、动态查表、动态排序及聚合等复杂查询逻辑,本文为您介绍常见场景的代码示例。

示例1:通过条件控制返回结果按照不同的表字段进行排序

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 小明
    col02 STRING beijing

示例2:通过条件控制查询不同的数据表

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 小明

示例3:通过判断字段值是否为空来控制where查询条件是否保留,即:当请求参数非必填时的查询逻辑

SELECT id, name, code
FROM table_name
<where>
    <if test='list!=null'>
    code in
        <foreach collection="list" open="(" close=")" separator="," item="code_num">
        ${code_num}
        </foreach>
    </if>
</where>
  • 请求参数:
    参数名称 参数类型 参数位置 是否必填 示例值 默认值 描述
    list STRING_LIST QUERY 北京市,杭州市 北京市,杭州市 排序方式
  • 返回参数:
    参数名称 参数类型 示例值
    id STRING 123
    name STRING 小明
    code STRING st123