使用Case when 去判断某个字段值不同时 执行各自查询

<select id="getBySku" resultMap="BaseResultMap" parameterType="java.util.HashMap">
        SELECT
            <include refid="Base_Column_List"/>,
            case when change_no not like "DO%" then (
                select DISTINCT
                case when uo.parent_order_no > 0 then uo.parent_order_no
                else uo.order_no
                end orderNo
                from uo_order uo
                where uo.order_no = pr.change_no
            )
            else (
                select DISTINCT
                    case when uo.parent_order_no > 0 then uo.parent_order_no
                    else uo.order_no
                    end orderNo
                from uo_order_bill uob
                left join uo_order uo
                on uob.order_no=uo.order_no
                where uob.business_order_no = pr.change_no
            )
            end orderNo
        FROM pd_stock_change_record pr
        <where>
          <if test="skuCode != null and skuCode != ''">
              and sku_code = #{skuCode}
          </if>
          <if test="inOutStock != null">
             and in_out_stock = #{inOutStock}
          </if>
          <if test="type != null">
             and type = #{type}
          </if>
        </where>
        order by create_time desc
    </select>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值