五证合一sql语法解决办法

工作的时候,数据库里面存储某张表里面证件号码存储在不同的字段下面,然后前台需要写一个查询语句,根据数据库里面存储证件号码查询该条数据。

实际情况如下

有些部门上传数据,不是只固定填写在某个字段,也会在别的字段里面填写证件号,

举个例子:1统一社会信用代码,2组织机构代码,3工商登记码,4税务登记号,5居民身份证号

这5个证件号码,如果只取其中一个字段(比如统一社会信用代码)进行查询的话,会导致不在该字段填写证件号码的数据遗漏,就会造成数据查询不完整。

这时候,只取一个字段是有问题,通俗的讲:5个字段的证件号码,当第一个字段为空的时候,就需要到第二个字段里面取数据了,直到取到带有证件号码数据的字段,但是如果所有带有证件的字段都没有数据的话,这条数据就是无效数据,数据没有办法进行使用。

这个时候,用case语法可以解决。

案例:该表的五证,只有前面字段两个含有证件号码,第一个证件字段有些数据为空,但是第一个字段为空的数据在其余的字段里面含有证件号码。

我写的语句为:

select   case
when TYSHXYDM is not null then TYSHXYDM
when ZZJGDM is not null then ZZJGDM
when GSDJM is not null then GSDJM
when SWDJH is not null then SWDJH
when SFZH is not null then SFZH
else
'无效数据'
end as USCC from TB_TJSYZSXQYHZB_XYZG t

这个时候,查询的数据则为

通用版本为:

select   case
when 统一社会信用代码 is not null then 统一社会信用代码
when 组织机构代码 is not null then 组织机构代码
when 工商登记码 is not null then 工商登记码
when 税务登记号 is not null then 税务登记号
when 居民身份证号 is not null then 居民身份证号
else
'无效数据'
end as USCC from 表名

这样可以避免查询数据只取一个字段的时候,查询的数据会遗漏。

工作中使用case用法小结的更多相关文章

  1. Delphi中ClientDataSet的用法小结

    Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进 ...

  2. jquery,extjs中的extend用法小结

    在jquery中,extend其实在做插件时还是用的比较多的,今天同时小结jquery和ext js中 的extend用法,先来看jquery中的. 1)  extend(dest,src1,src2 ...

  3. C++中extern关键字用法小结

    总结C++中关于extern关键字的用法. 1.变量的生明和定义中 C++语言支持分离式编译机制,该机制允许将程序分割为若干个文件,每个文件可被独立编译.为了将程序分为许多文件,则需要在文件中共享代码 ...

  4. c#中enum的用法小结

    转自:http://blog.csdn.net/moxiaomomo/article/details/8056356 enums枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存 ...

  5. Mybatis配置映射文件中parameterType的用法小结

    原创: 在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配 ...

  6. VBA中msgbox的用法小结

    1.作用在消息框中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如“确定”或者“取消”).通常用作显示变量值的一种方式.2.语法MsgBox(Prompt[,Buttons][,Title][, ...

  7. 有关struts中DispatchAction的用法小结

       今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Ac ...

  8. js中document的用法小结

    document常用属性: document.title//设置文档标题,与HTNL中的title标签等价 document.bgColor//设置页面背景颜色 document.fgColor//设 ...

  9. git在工作中的用法总结-使用篇

    上一篇介绍了git的环境安装配置,本篇对git在工作中常用的用法进行总结,已满足大部分的日常工作需求,对于其他的一些git命令用法在今后使用到时我也会更新上来,文中如有错误,欢迎大家指出来,谢谢~ 一 ...

随机推荐

  1. Entity Framework 框架

    微软官方提供的ORM技术的实现就是EF(Entity Framework)框架.EF的模式有三种分别是:Database First  数据库先行 ,Model First 模型先行 , Code F ...

  2. Hibernate框架笔记01_环境搭建_API_CRUD

    目录 1. Hibernate框架的概述 1.1 什么是框架 1.2 经典三层架构 1.3 Hibernate框架 2 Hibernate入门 2.1 下载Hibernate的开发包 2.2 创建项目 ...

  3. JavaScript 的 4 种数组遍历方法: for VS forEach() VS for/in VS for/of

    我们有多种方法来遍历 JavaScript 的数组或者对象,而它们之间的区别非常让人疑惑.Airbnb 编码风格禁止使用 for/in 与 for/of,你知道为什么吗? 这篇文章将详细介绍以下 4 ...

  4. 常用H5

    HTML5笔记 了解HTML5 ☞HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!!   例如: video 标签和 audio 及 canvas ...

  5. HTML中特殊符号

  6. JavaScript知识点 思维导图

    javascript变量 javascript数据类型 javascript运算符 javascript流程语句 javascript数组 javascript字符串函数 javascript函数基础 ...

  7. vue+vuecli+webapck2实现多页面应用

    准备工作 在本地用vue-cli新建一个项目,首先安装vue-cil,命令: npm install -g vue-cli 新建一个vue项目,创建一个基于"webpack"的项目 ...

  8. 基于LBS的六边形热力图算法

    六边形算法: 我把六边形铺满的分布图进行了切分,切分为矩形,每个矩形中有一个六边形.4个三角形.两个小长方形,依次计算.边界判断上,采用主流的MP>MN的方式(M为上边界对称点,N为与六边形的交 ...

  9. Mysql学习路线

    本文内容: mysql学习路线 首发日期:2018-04-19 由于现在很多都是有api了,很多问题都转接到编程语言上来处理了,所以这篇mysql之路仅仅是作为“了解”之用.不深究mysql. 很多东 ...

  10. C++17剖析:string在Modern C++中的实现

    概述 GCC 8.2提供了两个版本的std::string:一个是基于Copy On Write的,另一个直接字符串拷贝的.前者针对C++11以前的,那时候没有移动构造,一切以效率为先,需要使用COW ...