设为首页 收藏本站
查看: 681|回复: 0

[经验分享] MS SQL Server 学习⑴

[复制链接]

尚未签到

发表于 2018-10-12 10:27:21 | 显示全部楼层 |阅读模式
  通常情况下,作为开发人员比较了解一些常用的SQL语句,也知道什么时候可以用,但有的时候对于一般性的问题,完全不用在前端来处理,用SQL语句就可以轻松应对。  下面是用纯SQL语句对两个表的数据进行的检查:
人员基础信息表:SQL语句说明select 记录总数=count(*) from memberbaseinfo20353条记录 鉴定结果表:SQL语句 说明select 记录总数=count(*) from jdjg总记录数:48581select distinct c02 as "姓名" from jdjg不同的姓名:19383 select distinct c01 as 身份证号码 from jdjg不同的身份证号码:18104select distinct c01,c02 from jdjgC01和c02组合不同:21920select c01 from jdjg group by c01 having count(*)>1有重复[身份证号码]记录数:12319select c02 from jdjg group by c02 having count(c02)>1有重复[姓名]的记录数:11758select c01,count(distinct c02) from jdjg group by c01 having count(c01)>1 and count(distinct c02)>1身份证号码相同而姓名不同的身份证号码个数:2697select c01 身份证号码,c02 姓名 from jdjg where c01 in ( select c01 from jdjg group by c01 having count(c01)>1 and count(distinct c02)>1) order by c01列出身份证号码相同而姓名不同的记录明细:12093select c02,count(distinct c01) from jdjg group by c02 having count(c02)>1 and count(distinct c01)>1姓名相同而身份证号码不同的记录:1262select c01,max(c23) from jdjg group by c01 order by c01找出每个人最新的鉴定时间:18104select c01 姓名,c19 考试分数,c22 鉴定结果,c23 鉴定时间 from jdjg where c23>'2012-1-1'找出今年鉴定的记录:4630select c01 身份证号码,c02 姓名,c19 鉴定成绩,c22 鉴定结果,c23 鉴定时间 from jdjg where c23>'2012-1-1' and c19 is null找出今年以来没有填写成绩的记录:524select c01 身份证号码,c02 姓名,c19 鉴定成绩,c22 鉴定结果,c23 鉴定时间 from jdjg where c23>'2012-1-1' and c19'2012-1-1' and c19>=60列出今年以来合格的人员名单:2899select c02 from jdjg where c01 in ( select top 100 c01 from jdjg where c23>'2012-1-1' group by c01 having count(*)>=2 order by count(*) DESC) and c23>'2012-1-1' group by c02今年以来考过两次以上的人员:321、检查在鉴定结果表中存在的身份证号码在人员基础信息表中不存在的记录数SQL语句说明select count(*) from jdjg where c01 not in ( select c01 from memberbaseinfo )4866条记录select c01,c02 from jdjg where c01 not in ( select c01 from memberbaseinfo ) order by c01列出明细记录2、检查在鉴定结果表中存在的姓名在人员基础信息表中不存在的记录数select count(*) from jdjg where c02 not in ( select c02 from memberbaseinfo )9878条记录select c01,c02 from jdjg where c02 not in ( select c02 from memberbaseinfo ) order by c01列出明细3、检查在鉴定结果表和人员基础信息表中单位名称不一致的情况select a.c01,a.c02,a.c03+a.c04+a.c05 "人事信息中的单位",b.c03+b.c04+b.c05 "鉴定结果表中的单位" from memberbaseinfo a ,jdjg b where a.c03+a.c04+a.c05b.c03+b.c04+b.c05 and a.c01=b.c0113350条记录4、对身份证号码的检查select c01,c02 from jdjg where patindex('%[吖-座]%',c01)>0包含汉字Select c01,c02 from jdjg where patindex('%[a-zA-Z]%',c01)>0包含字符5、对姓名的检查select c01,c02 from jdjg where patindex('%[0-9]%',c02)>0包含数字Select c01,c02 from jdjg where patindex('%[a-zA-Z]%',c02)>0包含字符

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620666-1-1.html 上篇帖子: SQL Server 备份与恢复之六:介质集与备份集 下篇帖子: 在.NET中根据SQL Server系统表获取数据库管理信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表