偶是菜鸟,向大虾请教一个SQL语句的写法
一个表:两个字段,一个是学号XH字段,一个是身份证字段,现要求根据身份证字段提取出出生年月新建为第三个字段ZSNY,因为身份证字段(字符型)有三种情况,一种是15位的,一种是18位的,还有是没有身份证号(如士兵),直接用6位出生年月的,我不知道要怎么写个语句,把第三个ZSNY字段提取出来,谢谢
问题点数:20、回复次数:5Top
1 楼bigpandar(bigpandar)回复于 2005-04-03 19:12:03 得分 0
也就是说 身份证SFZ字段为15位的,从第7位开始截取,取6位,SFZ字段为18位的,从第9位开始截取,同样取6位,SFZ字段为6位的,直接把这6位作为出生年月ZSNY字段,不知道这个用SQL语句怎么写Top
2 楼xluzhong(Ralph)回复于 2005-04-03 19:13:08 得分 0
select xh,身份证字段,
stuff(left(isnull(身份证字段,'000000000000000'),len(身份证字段)-3),1,6,'') as zsny
from tablename
Top
3 楼bigpandar(bigpandar)回复于 2005-04-03 19:14:26 得分 0
谢谢楼上的大虾,偶先试试Top
4 楼xluzhong(Ralph)回复于 2005-04-03 19:16:45 得分 20
-----
select xh,身份证字段,
zsny=case when len(身份证字段)=15 then substing(身份证字段,7,6)
when len(身份证字段)=18 then substing(身份证字段,9,6)
else ''
end
from tablenameTop
5 楼bigpandar(bigpandar)回复于 2005-04-03 20:04:53 得分 0
谢谢,已搞定Top




