主要驗證SQL數據庫中已輸入的15位 及18位 SFZ號碼的位數、出生年月日是否正確,
可以過濾出大部分的輸入錯誤。
or (len(SFZ號)=18 and (Substring(SFZ號,7,2)<'19' or Substring(SFZ號,7,2)>'20'
or (Substring(SFZ號,11,2)>12)
or (Substring(SFZ號,11,2) in (01,03,05,07,08,10,12) and Substring(SFZ號,13,2)>31)
or (Substring(SFZ號,11,2) in (04,06,09,11) and Substring(SFZ號,13,2)>30)
or (Substring(SFZ號,11,2)=02 and Substring(SFZ號,13,2)>29)))
---------------------- 下面是針對 15位 及18位 SFZ號碼性別的驗證語句 ------------------
-- Access 不支持 Substring 查詢,可以替換為 mid 查詢。
select 序號,姓名,SFZ號,性別
from 身份表
where (((len(SFZ號)=15) and (Substring(SFZ號,15,1) in (1,3,5,7,9)) and 性別<>'男')
or ((len(SFZ號)=15) and (Substring(SFZ號,15,1) in (2,4,6,8,0)) and 性別<>'女'))
or (((len(SFZ號)=18) and (Substring(SFZ號,17,1) in (1,3,5,7,9)) and 性別<>'男')
or ((len(SFZ號)=18) and (Substring(SFZ號,17,1) in (2,4,6,8,0)) and 性別<>'女'))
注:轉載請注明出處