码迷,mamicode.com
首页 > 数据库 > 详细

用sql获得指定记录的空段数目和字段名称--实在想不通,这种场景应用在哪

时间:2018-10-17 00:13:56      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:查询   select   vmx   名称   col   好的   lan   style   说明   

1)表结构如下

技术分享图片

现在查询第四条记录
1)demo
技术分享图片
 
2)查询有几个为null或者‘’的字段,跟预期一样,两个1,说明两个字段为null或者‘’
技术分享图片
3)求和吧--得到为空的字段数目
技术分享图片
4)查出空字段,的字段名
/*
`IF`(expr1,expr2,expr3)三目运算符,参数1,为真,返回参数2,否则返回参数3
在这里,参数1为null或者‘‘为真, 我们让他返回1
*/
select 
sum(
    IF(ISNULL(name)||LENGTH(trim(name))<1,1,0) +
    IF(ISNULL(idCard)||LENGTH(trim(idCard))<1,1,0)+
    IF(ISNULL(tel)||LENGTH(trim(tel))<1,1,0) +
    IF(ISNULL(cardNum)||LENGTH(trim(cardNum))<1,1,0) +
    IF(ISNULL(bankName)||LENGTH(trim(bankName))<1,1,0) +
    IF(ISNULL(balance)||LENGTH(trim(balance))<1,1,0) 
) as 空字段数目,
CONCAT(
IF(ISNULL(name)||LENGTH(trim(name))<1,name,,‘‘) ,
    IF(ISNULL(idCard)||LENGTH(trim(idCard))<1,idCard,,‘‘),
    IF(ISNULL(tel)||LENGTH(trim(tel))<1,tel,‘‘) ,
    IF(ISNULL(cardNum)||LENGTH(trim(cardNum))<1,cardNum,,‘‘) ,
    IF(ISNULL(bankName)||LENGTH(trim(bankName))<1,bankName,,‘‘) ,
    IF(ISNULL(balance)||LENGTH(trim(balance))<1,balance,‘‘) 
) as 空字段名
from      
    bankinfor 
where id=4

技术分享图片

有没有更好的方法?

用sql获得指定记录的空段数目和字段名称--实在想不通,这种场景应用在哪

标签:查询   select   vmx   名称   col   好的   lan   style   说明   

原文地址:https://www.cnblogs.com/coisini/p/9800826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!