|
|
Posted on
2009-10-21 17:10
杨彬Allen
阅读( 265)
评论()
收藏
举报
 Code
-- =============================================================================
-- 標題: 通過身份證獲得戶籍
-- 目的: 以備不時之需
-- 整理: takako_mu
-- 时间: 2009-10-21
-- 地点: 昆山
-- =============================================================================
create function f_getcityfromcid (@cid nvarchar(18))
returns nvarchar(50)
as
begin
declare @acity nvarchar(1000)
set @acity = '____,____,____,____,____,____,____,____,____,____,____,北京__,天津__,河北__,山西__,內蒙古_,____,____,____,____,____,遼寧__,吉林__,黑龍江_,____,____,____,____,____,____,____,上海__,江蘇__,浙江__,安微__,福建__,江西__,山東__,____,____,____,河南__,湖北__,湖南__,廣東__,廣西__,海南__,____,____,____,重慶__,四川__,貴州__,雲南__,西藏__,____,____,____,____,____,____,陝西__,甘肅__,青海__,寧夏__,新將__,____,____,____,____,____,臺灣__,____,____,____,____,____,____,____,____,____,香港__,澳門__,____,____,____,____,____,____,____,____,國外__,'
set @cid = upper(@cid)
IF (len(@cid) <> 18 OR patindex('%[^0-9X]%',@cid) > 0)
RETURN '你小子騙我,這不是合法的身份證'
IF substring(@acity,cast(left(@cid,2) as int)* 5+1,4) = ''
RETURN '你小子騙我,這身份證的地區碼不存在'
RETURN '這小子是:'+replace(substring(@acity,cast(left(@cid,2) as int)* 5+1,4),'_','')
end
go

select dbo.f_getcityfromcid('320abcdefghijklmno')
--------------------------------------------------
--你小子騙我,這不是合法的身份證
--
--(1 個資料列受到影響)
select dbo.f_getcityfromcid('320111111111111111')
--------------------------------------------------
--這小子是:江蘇
--
--(1 個資料列受到影響)
drop function f_getcityfromcid
|