casewhen语句报错怎么办

分类:编程技术 时间:2024-02-20 15:26 浏览:0 评论:0
0
本文主要介绍当case when语句报错时该怎么办。文章中的介绍非常详细,有一定的参考价值。感兴趣的朋友一定要读一下!

mysql判断操作的语法:

case ..when语句

但是最近使用的时候遇到了问题,如下废话不多说,我们看一下详细介绍

直接说明问题。我有一个表 id_card_message 存储 ID 号。表结构及数据如下(MySQL5.7.14):

mysql> select * from id_card_message;+----- -+------ --------------+|编号 | id_card_no |+------+-------------- ------+| 1 | 342513199411222515 || 1 | 342624197812023498 || 1 | 310908198910123348 |+------+-------------------- +

现在根据倒数第二个显示男女信息ID号的数字,我执行了下面的SQL语句,对应的错误是r导出:

mysql> select case substr(id_card_no,17,1)->when (1,3,5,7,9) then 'male'->when (0,2,4,6,8) then 'Female' end 'sex',-> id_card_no-> from id_card_message;错误 1241 (21000): 操作数应包含 1 列

< strong>错误提示我:操作数应该包含一列。我们只能怀疑是when子句后面括号内的值太多导致的。那么在这种情况下的when结构中,when子句后面只能出现一个值吗?我检查了以下官方文档第13.6.5.1节中的case语法,但似乎没有对此进行解释。

当然,你仍然可以通过改变语句格式来获取所需的数据。如下:

mysql> select->case->when substr(id_card_no,17,1) in (1,3,5,7,9) ) then 'Male'-> when substr(id_card_no,17,1) in (0,2,4,6,8) then 'Female' end 'sex',-> id_card_no-> from id_card_message;+---- - -+--------------------+| s前 | id_card_no |+------+-------------- ------+|男 | 342623199610222515 ||男 | 342624197812023498 ||女| 310908198910123348 |+------+-------------------- +

目前的思路是,在“CASE值WHEN比较value”格式,when子句之后的比较值只能是单个值,不能连接多个值。例如,上面的比较值有1,3,5,7,9。这种情况下就只能使用上面的SQL了。

以上就是《casewhen语句报错怎么办》一文的全部内容,感谢您的阅读!希望分享的内容对大家有所帮助。更多相关知识,欢迎关注行业资讯频道!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > casewhen语句报错怎么办

用户评论