MS SQL 請問該怎指定查詢第幾筆資料!?
看到大多數的人都是教怎麼 select 所要的條件資料出來
但似乎查不到有教要怎麼樣, 指定取得table 內 第二筆資料
例如
資料表 t1內有資料如下
name tel addr
john 03 usa
mary 04 jap
grace 03 uk
我該怎指定我要調出 mary 04 jap 的第二筆資料!?
我想要直接指定第二筆的方式, 而不是用where name=mary的方式取得資料
因為之後我要連續撈出資料要設定變數, 但一次我只撈出一筆
CREATE TABLE Table1 ([name] varchar(5), [tel] int, [addr] varchar(3)) ; INSERT INTO Table1 ([name], [tel], [addr]) VALUES ('john', 03, 'usa'), ('mary', 04, 'jap'), ('grace', 03, 'uk') ;
WITH OrderedTable1 AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY name) AS RowNumber FROM Table1 ) SELECT * FROM OrderedTable1 WHERE RowNumber BETWEEN 2 AND 2;
jones888提到:
主 KEY,然後自動產生
這樣,你才能用 TOP 2
最簡單的方式是用IDENTITY函數及Temporary Table。
<pre class="c" name="code">DROP Table #temptable;
Select IDENTITY (INT, 1, 1) AS ROW_ID,name,tel,addr into #temptable From t1;
Select name,tel,addr From #temptable Where ROW_ID=2;
上例中的#temptable就是Temporary Table。
運用IDENTITY函數有兩個限制:
希望對你有幫助。
試試用 ROW_Number()
<pre class="c" name="code">
SELECT * FROM (
SELECT *, rowno=ROW_NUMBER() OVER (ORDER BY name asc) FROM t1
) aa WHERE rowno=2