本帖最后由 状元 于 2012-4-12 15:04 编辑
昨天有一朋友问我了这个问题,题目如下:创建一个名为CheckGender的存储过程,该过程接受一个名称作为其参数并检查名称的前缀为Ms. 还是Mr.如果前缀为Ms.则显示“你输入的是女性的名字”,如果前缀是Mr.则显示信息“你输入的是男性的姓名”,按照题目的要求自己设置信息执行上面的存储过程。
我读了两遍之后首先就想到了用两种方法一个是截取(substring),一个是模糊判断(like)。别的也有,不过我第一时间想到的就是这两个,下面我就把这两个判断分享给大家:
第一个方案:- create proc CheckGender
- @sex varchar(80)
- as
- if substring(@sex,1,3)='MR.'
- begin
- print '你输入的是男性的名字'
- return
- end
- if substring(@sex,1,3)='MS.'
- begin
- print '你输入的是女性的名字'
- return
- end
- return
执行存储过程- exec CheckGender 'MR.chen'
输出的信息是 “你输入的是男性的姓名”
第二个方案:- create proc CheckGender
- @sex varchar(80) output
- as
- if @sex like 'MR.%'
- begin
- print '你输入的是男性的名字'
- end
- if @sex like 'MS.%'
- begin
- print '你输入的是女性的名字'
- end
执行存储过程- exec CheckGender 'MR.chen'
输出的信息是 “你输入的是男性的姓名” |
|