| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 314 人关注过本帖
标题:存储过程的问题
取消只看楼主 加入收藏
llp_k6
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-10-13
收藏
 问题点数:0 回复次数:1 
存储过程的问题

这是题.......
2、 在pubs 数据库中创建员工资料表,表名:tbEmployeeInfo (如果存在多人同时使用同一数据库,表名可命名为:tbEmployeeInfo_自己名字的拼音全拼),表结构如下:
表名:tbEmployeeInfo
序号 字段名 字段类型 长度 是否允许空值 字段描述 约束
1 sID varchar 20 FALSE 编号 Primary key
2 sName varchar 20 TRUE 名称
3 sGender char 10 TRUE 性别
4 sIDCardNO varchar 20 FALSE 身份证号
5 dBirthDate datetime 8 TRUE 出生日期
6 iAge smallint 2 TRUE 年龄
7 sNativePlace varchar 20 TRUE 籍贯
8 sDiploma varchar 10 TRUE 学历
9 sRemark varchar 50 TRUE 备注
3、 创建存储过程:
在pubs 数据库中创建存储过程,名为:spGetBirthDate :
功能:通过传入身份证号返回其出生日期和当前年龄
输入参数:身份证号
输出:出生日期,年龄
说明:身份证号存在15位和18位两中情况,如果参数的位数不是这两种情况,则返回当前的日期,年龄为0:存储过程中暂不考虑身份证号中录入了非法的日期字符情况。身份证号规则如下,其中数字部分表示出生日期:
15位:XXXXX060314XXX
18位:XXXXX20060314XXXX

这是我编的存储过程....问题存在:我怎样才能把这个表中的字段全部显示出来?这样只能显示三个字段(dBrithDate,iAge,sGender)...请各位帮帮小妹啦.....

ALTER proc spGetBirthDatellp
@strIDCardNO varchar(20)
as
select
case len(@strIDCardNO)
when 15 then '19'+substring(@strIDCardNO,7,2)+'-'+substring(@strIDCardNO,9,2)+'-'+substring(@strIDCardNO,11,2)
when 18 then substring(@strIDCardNO,7,4)+'-'+substring(@strIDCardNO,11,2)+'-'+substring(@strIDCardNO,13,2)
end as dBrithDate,
case len(@strIDCardNO)
when 15 then (datepart(year,getdate())-substring(@strIDCardNO,7,2))-1900 --因为2000年以后出生的身份证位数都是18位,所以......^^
when 18 then year(getdate())-substring(@strIDCardNO,7,4)
end as iAge,
case (case len(@strIDCardNO)
when 15 then substring(@strIDCardNO,14,1)
when 18 then substring(@strIDCardNO,16,1)
end)%2
when 1 then '男' else '女'
end as sGender


2007-10-14 09:55
llp_k6
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-10-13
收藏
得分:0 
回复:(purana)你select的时候加上其它的列名不就完...

不行啊....加上就错啦....
具体怎样加可以说清楚点吗?


2007-10-14 12:11
快速回复:存储过程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017088 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved