select @NoID=
case when exists(select id from annou where id=1) then 1
else SELECT MIN(id + 1) AS NoID
FROM annou
WHERE ((id + 1) NOT IN
(SELECT id
FROM annou))
end
case when exists(select id from annou where id=1) then 1
else SELECT MIN(id + 1) AS NoID
FROM annou
WHERE ((id + 1) NOT IN
(SELECT id
FROM annou))
end
解决方案 »
- 视图中字段嵌套引用的解决方法
- 急,务必帮忙,谢谢!
- 如何把表中数据叠加后删除
- 自己模仿写的sql语句虽然成功了 但是第一个还是不怎么明白exist 的逻辑判断是什么呢
- 问一个存储过程里使用事务的问题。
- stuSex varchar(15)not null add constraint ck_stuSex check(stuSex like '男'or '女'
- 如何删除一个字段里重复的数并按照从小到大的顺序排列
- set identity_insert on
- 觉得有用的就顶:关于提高SQL SERVER安全性的问题,删除SA用户
- SQLserver递归查询
- 一個還原的問題?100
- 谁能给我推荐2本好的SQL SERVER 2K的书!!谢谢啦~~~~~~~~
declare @NoID int
select @NoId=
case when not exists(select id from annou where id=1) then 1
else (SELECT MIN(id + 1) AS NoID
FROM annou
WHERE ((id + 1) NOT IN
(SELECT id
FROM annou)))
end
我对你的语句有几处不是很明白,你可以帮我讲一下吗?
你所用的select ... from (select ...) t where ....
所用的from (select ...) t where
是什么意思呢?还忘解答.
SELECT NoID=(case when MIN(id)>1 then 1 else MIN(id)+1 end)
FROM annou
WHERE ((id + 1) NOT IN
(SELECT id
FROM annou))