昨天有一朋友問我了這個問題,題目如下:創建一個名為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'
輸出的信息是 “你輸入的是男性的姓名”
雖然比較簡單,但是我想有時候確實挺實用的!所以就分享給大家了,希望對大家有用。