在数据表中为不存在的字段进行动态赋值

75 阅读1分钟

问题

遇到一个需求,查询返回订单列表,并对订单属性进行赋值。前端传入type字段,后端数据表并没有type字段需要根据自己的需求进行动态判断。当全表查询有多种状态时,状态如何动态赋值犯难了。最简单的方法就是把相关的判断字段全部返回到service层使用Java代码进行判断。可是这样不太优雅,因为分页查询前端不需要的字段也要返回了。

解决方案

1.如何添加数据表不存在的字段

select 1 type, --这样就可返回一个字段 type 为 1 
name from student  

2.type字段有多个属性如何进行动态的赋值

-   case :表示需要处理的字段
-   when :表示条件
-   then :表示当when执行为true时,再执行的语句
-   else :表示当所有的when执行为false时,再执行的语句
-   end:表示 case 语句结束的结尾
SELECT 
(CASE 
when status = 1 and score = a then 1
when status = 2 and score != a  then 2 
end) AS type 
FROM student ;