zoukankan      html  css  js  c++  java
  • 工作中使用case用法小结

    五证合一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 表名 

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

  • 相关阅读:
    文件操作小练习
    阶段练习1
    copy小练习
    小练习
    str 小列题
    条款50:使用自定义的new以及delete的时机会
    条款49:了解new-handle行为
    简单的说一下:tarits技法就是一种模板元编程,起可以将本来处于运行期的事拉到编译期来做,增加了运行效率。 看以非模板元编程的例子,就是前面的那个例子:
    条款47:请使用traits class表示类型信息
    条款46:需要类型转换的时候请为模板定义非成员函数
  • 原文地址:https://www.cnblogs.com/jianshuai520/p/10126083.html
Copyright © 2011-2022 走看看