mybatics行转列sql。例如一个字段case_status是int类型,当int等于1时我想查出返回给待调解,当int=2时是未调解该怎么写
时间: 2024-09-22 18:01:01 浏览: 8
在MyBatis中,你需要使用SQL的CASE语句来实现这种条件转换,将int类型的值映射成字符串描述。假设你想创建一个动态查询,你可以这样做:
```sql
SELECT
case_status,
CASE
WHEN case_status = 1 THEN '待调解'
WHEN case_status = 2 THEN '未调解'
ELSE '其他' -- 可能需要处理其他状态,默认情况
END AS status_description
FROM your_table
```
在这个例子中,`your_table`应该替换为你实际的数据表名。这个查询会返回每条记录的`case_status`以及基于该值的对应描述。
如果你想在MyBatis的Mapper XML文件中编写动态SQL,可以这样配置:
```xml
<select id="getCaseStatusDescription" resultType="YourResultModel">
SELECT
case_status,
<if test="status == 1">'待调解'</if>
<if test="status == 2">'未调解'</if>
<else>'其他'</else>
AS status_description
FROM your_table
</select>
```
这里`YourResultModel`是你自定义的模型类,包含`case_status`和`status_description`字段。然后通过传入`status`参数来动态生成SQL。