mysql – 在SQL中混淆ifnull()的行为
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 在SQL中混淆ifnull()的行为,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1180字,纯文字阅读大概需要2分钟。
内容图文
我有这个表’customer_master’并且有一些值.
CREATE TABLE customer_master(
CUSTOMER_NUMBER VARCHAR(6),
FIRSTNAME VARCHAR(30),
middlename VARCHAR(30),
lastname VARCHAR(30),
CUSTOMER_CITY VARCHAR(15),
CUSTOMER_CONTACT_NO VARCHAR(10),
occupation VARCHAR(10),
CUSTOMER_DATE_OF_BIRTH DATE,
CONSTRAINT customer_custid_pk PRIMARY KEY (CUSTOMER_NUMBER)
);
我想在上表中找到customer_number,firstname,middlename和lastname,条件是对于那些没有中间名的客户,middlename中的“null”值应该替换为lastname.
所以我想为什么不在这里使用ifnull(middlename,lastname),当我使用它时,我得到了一些有趣的结果.
Before using ifnull()
如果我不使用ifnull,那么我的结果表看起来像这样.
select customer_number, firstname, middlename, lastname from customer_master;
After using ifnull()
select customer_number ,firstname, ifnull(middlename, lastname) as 'Middle_Name' , lastname from customer_master;
我期望middlename中的所有空值都将被lastname替换,但是为什么没有发生?为什么只有一些中间名行得到的姓氏值不是全部?
任何解释?
http://sqlfiddle.com/#!9/2c742b/3
解决方法:
如果你导入了数据,也许NULL真的是’NULL’,所以试试:
select . . .,
(case when ltrim(rtrim(middlename)) = 'NULL' or middlename is null
then lastname
else middlename
end) as middlename
内容总结
以上是互联网集市为您收集整理的mysql – 在SQL中混淆ifnull()的行为全部内容,希望文章能够帮你解决mysql – 在SQL中混淆ifnull()的行为所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。