SQL面试题

来源:互联网 发布:jk制服淘宝店推荐 编辑:程序博客网 时间:2024/06/06 23:19

SQL面试题

2010-05-14 20:39kaiyanghao123 | 分类:数据库DB | 浏览1742次
SQL面试题 机构表如下:g_cardapply表字段(字段名/类型/长度)g_applyno    varchar 8   申请号g_applydate  bigint  8   申请日期g_state      varchar 2   申请状态g_cardapplydetail表字段g_applyno  varchar 8  申请号g_name     varchar 30 申请人姓名g_idcard   varchar 18 申请人身份证号码g_state    varchar  2 申请状态1、查询身份证号码为440401430103082的申请日期2、查询同一个身份证号码有两条以上记录的身份证号码及记录个数3、将身份证号码为440401430103082的记录在两个表中的申请状态均改为074、删除g_cardapplydetail表中所有姓李的记录。
我觉得第二题意思应该是:查询身份证号码(此号码应该有两条以上的记录),并且把每条记录的个数查询出来。如有:g_applyno  g_name    g_idcard                g_state    1000000    A         452130195502280031       11000001    B         452130195502280032       11000002    A         452130195502280031       11000003    A         452130195502280031       11000004    B         452130195502280032       11000005    C         452130195502280033      1查询结果:g_idcard             records452130195502280031     3452130195502280032     2
2010-05-14 23:38提问者采纳
1). select g_applydate from g_cardapply a,g_cardapplydetail bwhere a.g_applyno=b.g_applyno and b.g_idcard='440401430103082'2). select g_idcard,count(g_idcard) as records from g_cardapplydetailgroup by g_idcard having count(g_idcard)>=23). 为了保持状态的一致性,这里最好用事务提交begin tranupdate g_cardapply set g_state='07' from g_cardapplydetailwhere g_cardapply.g_applyno=g_cardapplydetail.g_applynoand g_cardapplydetail.g_idcard='440401430103082'update g_cardapplydetail set g_state=07 where g_idcard='440401430103082'commit4). delete from g_cardapplydetail where g_name like '李%'

0 0