工作中使用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 表名 

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

原文地址:https://www.cnblogs.com/jianshuai520/p/10126083.html

时间: 2024-10-01 00:45:12

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

JAVA中this的用法小结

对于面对对象编程中,this指针是非常常见的.用法基本上也是差不多,这里主要记录JAVA中安卓开发方向上一个比较常见的一个特殊用法. 1 public class Main extends Activity{ 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.layout_main);

VBA中msgbox的用法小结

1.作用在消息框中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如"确定"或者"取消").通常用作显示变量值的一种方式.2.语法MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])参数说明:(1)Prompt,必需的参数,为字符串,作为显示在消息框中的消息文本.其最大长度约为1024个字符,由所用字符的宽度决定.如果prompt的内容超过一行,则可以在每一行之间用回车符(Chr(13)).换行符(Chr(10)

Delphi中ClientDataSet的用法小结

TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进行操作处理的接口和功能,而本身并不依赖上述几种数据库驱动程序,基本上能满足单机"瘦"数据库应用程序的需要. 一.TClientDataSet的基本属性和方法介绍 1.FieldDefs: 字段定义列表属性 开发者可通过单击属性编辑器中该属性编辑按钮,或在该控件上单击右键选择弹出菜单中的"Fields Editor"菜单进

四种访问权限修饰符在工作中的常见用法

1.public public常见在service的接口服务中,或者用成public static final...用作公共的常量用于共享,其他的框架中多见,与普通程序员没什么关系. 2.protected protected在业务代码中遇到的极少,多用在框架之中. 3.默认 极少见 4.private private常见在各种实体类,service,私有常量中,在工作中用的比较多. 原文地址:https://www.cnblogs.com/jueshixingkong/p/12078995.h

linux 中的正则表达式用法小结

首先:在linux中 ,正则表达式是针对文件内容而言的.查用在shell的grep,sed ,awk等相关命令之中. 正则表达式的元字符: .  : 表示任意字符 字符次数锚定: * : 表示* 之前的字符或模式出现任意次,其中包括0次 ?:   表示?之前的字符出现0次或一次,需要注意的是,在linux中需要是\?. \{m,n\}:表示其前面的字符或模式出现至少m次,至多n次 \{m,\}: 表示其前面的字符至少出现m次 \{0,n\}:表示其前面的字符至多出现n次 位置锚定: ^: 表示以

有关struts中DispatchAction的用法小结

今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Action中,通过传入的不同参数来觉得执行哪个操作.     DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法,所以它的子类就不用来实现这个方法了,只需要专注与实际操作的方法,        1.首先要一个DispatchAction的子类,它含有一些方法,l

在linux日常工作中touch的用法

大家在日常运维工作中都知道touch命令是用来创建一个新的空文件的,但是还有一个重要的作用今天给大家说一下,那就是更改文件日期. 一般我们主要用于把文件日期修改为目前日期: touch -d "日期" 文件名 例如:将test的日期调整为两天前 touch -d "2 days ago" test touch -t 时间 文件名 例如:将test文件日期改为2016/9/12 9:53 touch -t 1609120953 test

sqlserver 中的CASE用法

在查询,或者写视图查询语句时,有时候不想直接显示查询出来的值,而是根据查询出来的数据,对应到特定的值时,用case比较方便 CASE Ta.id WHEN '0' THEN '特定值' ELSE Ta.id  END AS newName, 

js中document的用法小结(一)

document常用属性: document.title//设置文档标题,与HTNL中的title标签等价 document.bgColor//设置页面背景颜色 document.fgColor//设置页面前景色 document.fileCreateDate//文件建立日期,只读属性 document.fileModifiedDate//文件修改日期,只读属性 document.URL//可返回当前文档的URL document.linkColor//未点击过的链接颜色 doucment.al