有表tb的唯一欄位id(範圍0-255)
1、查詢乙個未用id
2、查詢乙個未用且最小的id
3、查詢乙個未用且最大的id
網上很多的sql用下表會失敗
tb:********************==
id ***
254 ccc
255 ...
********************==
有鄒建提供:
sql code
--你的源表
declare
@tbtable
( id
int)
insert
@tbselect
254
union
allselect
1
union
allselect
255
--1、查詢乙個未用id
select
*from
( select
id =
a.id
+(b.id
*4)
+(c.id
*16)
+(d.id
*64)
from
( select
id =
0
union
allselect
id =
1
union
allselect
id =
2
union
allselect
id =
3)a, (
select
id =
0
union
allselect
id =
1
union
allselect
id =
2
union
allselect
id =
3)b, (
select
id =
0
union
allselect
id =
1
union
allselect
id =
2
union
allselect
id =
3)c, (
select
id =
0
union
allselect
id =
1
union
allselect
id =
2
union
allselect
id =
3)d )id
where
notexists
( select
*from
@tbwhere
id =
id.id)
--2、查詢乙個未用且最小的id
select
min(id)
+1
from
( select
id from
@tbunion
allselect
id =
-1) a
where
notexists
( select
*from
@tbwhere
id =
a.id
+1)
--3、查詢乙個未用且最大的id
select
max(id)
-1
from
( select
id from
@tbunion
allselect
id =
256) a
where
notexists
( select
*from
@tbwhere
id =
a.id
-1)
如果第乙個問題是任意乙個未用的那麼可以直接用問題2或者3的答案
看似簡單的a b
輸入兩個整數a和b,計算a b的和 注意此題是多組測試資料 這道題的難點就在多組測試資料,如果是一組資料那麼乙個scanf 函式就可以解決,但是這道題要求的是多組資料,那麼就要再用乙個while 函式讓它迴圈,如下 include intmain return0 關於 的作用 1 在windows下...
看似簡單的求R n
求出r n其中r為實數 0.0 r 99.999 n是乙個整數 n 25 大家很容易想到,這還不容易麼?可是如果要求最精確的結果呢?就是說小數點之後有多少輸出多少.並且計算時間不多於1s.是的,這是一道acm的試題 我暫時沒有考慮精確度的問題,感覺陷阱在1sec上面,於是沒有敲出來 就開始想,可能這...
區間DP例題總結 看似不簡單的簡單題
今天,我們開始學那奇怪的區間dp。簡單來說,區間dp分為三個部分 階段列舉左端點,再列舉右端點 策略 顧名思義就是因為有些題,需要求出中點k,但有些題卻又不需要。所以我們應該判斷,用與不用。現在我們來看幾道經典例題 n堆石子擺成一條線。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成...