日期:2014-05-18  浏览次数:20468 次

SQL语句 取与当前值不重复的一个非连续字段的最小空白值
用四角号编码写了个四位档案编号程序

王五=1010
张三=1310
马六=7200
谢晓蒙=3643

因为同一年的人事档案不超过1000份,所以四位编码足够使用

问题是重名的档案编号会重复

SQL code
sql = "Select count(daid) from sb WHERE daid='"&daid&"'"
set rs=conn.execute(sql)
if rs(0) <> 0 then
daid=daid+1 
end if

以上代码最多重名两次,而且指不定会占用别人的不重名的档号
比如第一个人 王五=1010,再次录入王五时,王五=1011

求SQL语句中,如何查找0000~9999中最接近当前daid的不重复数值

------解决方案--------------------
找不是问题
SQL code
SELECT TOP 1 A.daid + 1 ASN Nextdaid
FROM TAB A
WHERE NOT EXISTS (
  SELECT 1 FROM TAB
  WHERE daid = A.daid + 1
  )
ORDER BY ABS(A.daid + 1 - 1010 )