sql数据库中如何根据身份证号判断性别

问题描述

身份证号有15位和18位的..在sql中该如何判断?I_sex=casewhenlen(s_sfzhm)=15andSubstring(s_sfzhm,15,1)in(1,3,5,7,9)thenI_sex='男'elselen(s_sfzhm)=15andSubstring(s_sfzhm,15,1)in(2,4,6,8,0)thenI_sex='女'elselen(s_sfzhm)=18andSubstring(s_sfzhm,17,1)in(1,3,5,7,9)thenI_sex='男'elselen(s_sfzhm)=18andSubstring(s_sfzhm,17,1)in(2,4,6,8,0)thenI_sex='女'end这样写会错吗?

解决方案

解决方案二:
号码的结构和表示形式1、号码的结构公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。2、地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。3、出生日期码表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。4、顺序码表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
解决方案三:
15位的最后一位,18位的倒数第二位是单数就是男,否则就是女。人妖除外
解决方案四:
declare@idCardtable(idintidentity(1,1),vvarchar(18))insert@idCardselect'111111111111111'unionselect'111111111111110'unionselect'111111111111111131'unionselect'111111111111111121'unionselect'111111111111111171'selectv,substring('女男',substring(right('00'+v,18),17,1)%2+1,1)from@idCard

时间: 2024-10-26 02:07:37

sql数据库中如何根据身份证号判断性别的相关文章

我想问下怎么判断sql数据库中的内容为空集,而不是NULL啊

问题描述 我想问下怎么判断sql数据库中的内容为空集,而不是NULL啊 如图,这两个字段一个为NULL,一个什么也没有但不是NULL,怎么判断什么都没有的情况啊!!! 我知道这样判断NULL _variant_t str = m_pRecordset->GetCollect("MyOrder"); if (str.vt == VT_NULL) 求教 解决方案 什么没有的时候是空字符串.你可以判断bstr类型,然后比较字符串是否为""空字符串. 解决方案二: s

如何区分SQL数据库中的主键与外键_MsSql

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的

如何区分SQL数据库中的主键与外键

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的

SQL 数据库中的存储过程的参数问题

  1.SQL 数据库中的存储过程的参数问题 怎么将SQL数据库中的存储过程中的参数既作为输出变量又作为输出变量? [sql] view plaincopy --drop proc proc_test --go create proc dbo.proc_test @in int, @out int out, @in_out int output as select @out = @in + @in_out, --1 + 2 = 3 @in_out = @out + 1 --3 + 1 = 4 g

c# 查询sql数据库中数据显示对象未实例化的问题

问题描述 c# 查询sql数据库中数据显示对象未实例化的问题 c#查询sql数据库中的数据,catch语句在if(reader.Read()==false)提示未将对象实例化, 注饰掉这句话后,catch语句在while(reader.read())捕捉到同样的错误, 修饰掉这句话后, 在item.text=reader["id"].tostring() 报同样的错误 解决方案 reader有没有初始化? reader = cmd.ExecuteReader(); 有没有这一句 解决方

vs2010 数据的多选一-在VS2010环境下如何将excel数据导入到SQL数据库中的代码

问题描述 在VS2010环境下如何将excel数据导入到SQL数据库中的代码 类似于这种的导入方式的代码.有大神吗 解决方案 c#中高效的excel导入sqlserver的方法 http://wenku.baidu.com/link?url=swMSQLS3aD8QqkCckCokNOOsmqYphZ3nNL7Yeuq-e7K9Mz4UrLy92nGdLXV7IlUNFm9wXreVs7jAFgYtHBDbb1_TD3rOxOrxDKSr6QIDBIO

c#-如何把datagridview中的数据保存到SQL数据库中?VB.NET或C#

问题描述 如何把datagridview中的数据保存到SQL数据库中?VB.NET或C# 如下图:已经实现从EXCEL导入数据到Datagridview中,现在要把其中的数据保存到数据库的AAAie表里面.请用代码说明,谢谢. 解决方案 取数据用ado.net保存到SQL Server数据库.http://blog.csdn.net/lysc_forever/article/details/7697536 解决方案二: 方法1.创建一个数据库,表,表名自取,表的字段和Excel相同,取Excel

select-vs2010C#Web开发3个Dropdown控件从sql数据库中的4个表显示数据

问题描述 vs2010C#Web开发3个Dropdown控件从sql数据库中的4个表显示数据 实现效果:第一个下拉控件是选择学院,第二个下拉控件是选择系部,第三个下拉控件是选择班级.从网上找了个后台代码:前台: <%@ Page Language=""C#"" AutoEventWireup=""true"" CodeFile=""StudInfo.aspx.cs"" Inheri

c#-有什么好的方法把CSV格式导入到SQL数据库中?有代码更加好,或者指教思路也可以,感谢啦!

问题描述 有什么好的方法把CSV格式导入到SQL数据库中?有代码更加好,或者指教思路也可以,感谢啦! 有什么好的方法把CSV格式导入到SQL数据库中?有VB.NET或者C#代码更加好,或者指教思路也可以,感谢啦! 解决方案 1.用SQL自带的工具(导入导出数据)就可以2.不代码的话,每次读一行,按','进行Split成为一个数组,写入数据库就可以了 解决方案二: csv其实就是txt.你可以当成文本一行一行的处理.写数据库用ado.net就是了. 解决方案三: 代码就是一行行读取,用逗号作为格列