当前位置:   article > 正文

MySQL_Case When遇到的坑_case函数 不支持引用表字段名

case函数 不支持引用表字段名

关于insert into tableA (字段1....字段N) select * from tableB

使用Case When 插入遇到的坑

第一种 Case 后接 字段名 (可以查询tableB的数据出来,也可以插入tableA)

  1. case tddp.WINNING_BIDDER
  2. when '中国电信' then '12'
  3. when '中国移动' then '10'
  4. when ''中国联合网络通信' then '11'
  5. else ''
  6. end as TENDER_COMPANY,

 

 第二种 Case 后接 字段名 ,When中对该字段使用函数(可以查询tableB的数据出来,无法插入tableA)

  1. case tddp.WINNING_BIDDER
  2. when instr(tddp.WINNING_BIDDER ,'中国电信')>0 then '12'
  3. when instr(tddp.WINNING_BIDDER ,'中国移动')>0 then '10'
  4. when instr(tddp.WINNING_BIDDER ,'中国联合网络通信')>0 then '11'
  5. else ''
  6. end as TENDER_COMPANY,

 第三种Case 方式解决 第二种when 使用函数遇到无法插入tableA的问题 (case 去掉 字段名)  如图 

  1. case
  2. when instr(tddp.WINNING_BIDDER ,'中国电信')>0 then '12'
  3. when instr(tddp.WINNING_BIDDER ,'中国移动')>0 then '10'
  4. when instr(tddp.WINNING_BIDDER ,'中国联合网络通信')>0 then '11'
  5. else ''
  6. end as TENDER_COMPANY,

 

注意: 如果用以下这种方式

case tddp.WINNING_BIDDER 
    when  instr(tddp.WINNING_BIDDER ,'中国电信')>0 then '12'
  else ''
end as TENDER_COMPANY,
 
就是拿  tddp.WINNING_BIDDER  是否等于   instr(tddp.WINNING_BIDDER ,'中国电信')>0 ,导致SQL因为类型问题出错.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/485202
推荐阅读
相关标签
  

闽ICP备14008679号