sql查询 身份证判断男女

我有个数据库,我想查询下有多少女性,或男性,字段shengfenzheng里的身份证有15,18位两种,请问查询语句应该如何写呢???
似乎你们答的都不对,库名为A,字段名为B,按身份证号码查询来区别男女,比如说我的库有100W人,我要找出所有女性,因为当时没有性别字段,所以只能用身份证来区分,15位身份证:最后一位表示男单女双。
18位身份证:倒数第二位表示男单女双。这是身份证号码的规则。请问这样的查询语句应该如何写

上面给的答案是错的,这个语句在身份证15位是可以用的,但是二代身份证是执行不下去的,正确的是:SELECT case when (left(right([买受人身份证号码],2),1) % 2 = 0) then '女' else '男' end AS 性别1 from [表名]
若果是更新已有性别字段,但是需要从身份证中提取男女的,用下面sql语句:
update [表名] set [性别]=(case when (left(right([买受人身份证号码],2),1) % 2 = 0) then '女' else '男' end )
where len([身份证])=18 and left(right([身份证],2),1)<>'X'
注意后面的判别条件<>'X'针对的可能是错误的18位身份证号吗需要剔除,否则执行不下去。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-01-03
15位身份证:最后一位表示男单女双。
18位身份证:倒数第二位表示男单女双。
这是身份证号码的规则。
SELECT CASE RIGHT(shengfenzheng,1)%2 WHEN 1 THEN '男' ELSE '女' END AS 性别本回答被提问者采纳
第2个回答  2009-09-27
15位身份证:最后一位表示男单女双。
18位身份证:倒数第二位表示男单女双。
这是身份证号码的规则。
第3个回答  2009-09-27
SELECT CASE RIGHT(shengfenzheng,1)%2 WHEN 1 THEN '男' ELSE '女' END AS 性别
第4个回答  2009-09-27
你查下身份证的编码规则,应该能帮到你~

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网