博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 多表使用 Case when then 遇到的坑
阅读量:4632 次
发布时间:2019-06-09

本文共 806 字,大约阅读时间需要 2 分钟。

前言: 在做一个订单导出时,遇到多表都含有state这个字段,含有多个状态首先想到的是:

case colume when condition then resultwhen condition then resultwhen condition then resultelse resultend

当正常试着写代码时会发现报错:

错误代码:

a.state  ,    CASE stateWHEN 0 THEN    '等待支付'WHEN 1 THEN    '等待发货'WHEN 2 THEN    '等待收货'WHEN 3 THEN'已经收货'WHEN 4 THEN'已完成'WHEN 5 THEN'订单取消'WHEN 101 THEN'等待接单'ELSE    '已经签收'END AS state,

所报的错:

[Err] 1052 - Column 'state' in field list is ambiguous  字段列表中的列“状态”是模棱两可的。

想着报状态模糊,那就加个字段命名,发现CASE后面需要用  表名点状态字段  如:a.state    ,END 用重命名的字段   orderState ,能正常解决多表,多相同字段下CASE    WHEN   THEN   END 相关的问题

正确代码:

a.state AS orderState ,    CASE a.stateWHEN 0 THEN    '等待支付'WHEN 1 THEN    '等待发货'WHEN 2 THEN    '等待收货'WHEN 3 THEN'已经收货'WHEN 4 THEN'已完成'WHEN 5 THEN'订单取消'WHEN 101 THEN'等待接单'ELSE    '已经签收'END AS orderState,

 

转载于:https://www.cnblogs.com/downs/p/9151653.html

你可能感兴趣的文章
Hadoop 停止Job
查看>>
几个重点问题回顾
查看>>
隐藏空的cell
查看>>
转: Centos安装gcc及g++
查看>>
转:安桌开发开源库的推荐1
查看>>
学习总结(Java)
查看>>
怎么修改tomcat端口
查看>>
设置border为虚线
查看>>
HDU - 5753 多校联萌3-2
查看>>
lucene3.6.0的文档评估机制
查看>>
ZOJ 3822 Domination DP
查看>>
阿里云的服务器内网互通的前提条件
查看>>
document/window的基础知识
查看>>
复习事件委托
查看>>
wordpress 如何防止盗链
查看>>
请大家一定善用emule!
查看>>
Educational Codeforces Round 13 B. The Same Calendar 水题
查看>>
纠正部分Linux初学者对ctime的误解
查看>>
shell命令快捷键
查看>>
树链剖分(模板)
查看>>