帮帮我啊,兄弟们.

zhucp 2004-12-23 09:53:56
表 Table 字段:
Name ID
A 1
B 2
C 4
D 6
E 7
F 8

问题:如何从这个表中取出最小的 没有初使用的ID
如下面则,应该是 3 ,我如何写这条SQL 语句呢??
...全文
49 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
onetop 2004-12-24
  • 打赏
  • 举报
回复
SELECT ISNULL(MAX(c.ID), 0) + 1 AS MinID
FROM (SELECT (SELECT COUNT(*)
FROM aaa b
WHERE a.id >= b.id) AS ID, Name
FROM AAA a) c INNER JOIN
AAA d ON c.ID = d.id AND c.Name = d.Name


AAA 为Talbe名,最后得到的MINID就是 结果3

在SQLSERVER环境下运行通过。
vinsonshen 2004-12-23
  • 打赏
  • 举报
回复

select c.new_id+1 as min_id from (
select isnull(min(a.id),max(a.id)) as new_id from (select id from 表) as a
left join (select min(id) as id2 from 表 union all select max(id) as id2 from test2) as b on a.id=b.id2
where b.id2 is null and not exists (select * from #test where id=a.id+1)) as c
koposo 2004-12-23
  • 打赏
  • 举报
回复
select top 1( ID-1) from ttt where ID-1 not in(select ID from 表) and ID>1

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧