平时主要做维护方面工作,开发工作较少,没怎么认真的写过几行plsql代码。昨日一同事打电话咨询一个小问题,当时觉得很简单,但一时又想不出怎么写,后来静下心来,终于把语句写出来了。其实语句非常简单,只不过是对plsql不熟而已,因此请开发大神莫要拍砖。看来以后还要多看一些开发类的书籍,以便不时之需啊。
去除一些细节,可以归纳为如下内容:表t包含两个字段,deptno字段为部门编号,id字段为身份证号。
其中ID有18位的,也有15位的,18位和15位的样例如下:
18位身份证号:110108197211182718
15位身份证号:110108721118271
现在要统计每个部门人数,其中上述15位和18位的身份证号认为同一个人。
背景已经说清楚了,怎么写语句呢?很显然要对id列进行一下简单的条件处理,然后在进行统计,这里就用到了case when语句。 具体语法如下
根据上面的语法,我们可以基于t表写一条简单的语句:
去除一些细节,可以归纳为如下内容:表t包含两个字段,deptno字段为部门编号,id字段为身份证号。
点击(此处)折叠或打开
- SQL> desc t
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NUMBER
ID VARCHAR2(30)
18位身份证号:110108197211182718
15位身份证号:110108721118271
现在要统计每个部门人数,其中上述15位和18位的身份证号认为同一个人。
背景已经说清楚了,怎么写语句呢?很显然要对id列进行一下简单的条件处理,然后在进行统计,这里就用到了case when语句。 具体语法如下
根据上面的语法,我们可以基于t表写一条简单的语句:
点击(此处)折叠或打开