昨天有一朋友问我了这个问题,题目如下:创建一个名为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'
输出的信息是 “你输入的是男性的姓名”
虽然比较简单,但是我想有时候确实挺实用的!所以就分享给大家了,希望对大家有用。