CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

偶是菜鸟,向大虾请教一个SQL语句的写法

楼主bigpandar(bigpandar)2005-04-03 19:05:20 在 MS-SQL Server / 基础类 提问

一个表:两个字段,一个是学号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

相关问题

  • sql 语句写法.
  • sql语句写法
  • sql语句写法
  • SQL语句写法。
  • sql语句写法
  • sql语句- 写法!
  • 请教SQL语句写法
  • 关于sql语句写法
  • SQL语句的 写法~~~~~~~~~
  • SQL语句的写法

关键词

  • 字段
  • 语句
  • 身份证
  • zsny
  • sfz
  • 出生年月
  • xh
  • len

得分解答快速导航

  • 帖主:bigpandar
  • xluzhong

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo