[英]How do I select an entire row which has the largest ID in the table?
我該怎么辦?
SQL SELECT row FROM table WHERE id=max(id)
您可以使用子選擇:
SELECT row
FROM table
WHERE id=(
SELECT max(id) FROM table
)
請注意,如果max(id)
值不唯一,則返回多行。
如果你只想要一個這樣的行,請使用@MichaelMior的答案,
SELECT row from table ORDER BY id DESC LIMIT 1
你也可以這樣做
SELECT row FROM table ORDER BY id DESC LIMIT 1;
這將按行ID按降序對行進行排序,並返回第一行。 這與返回具有最大ID的行相同。 這當然假設id
在所有行中是唯一的。 否則,可能有多行具有id
的最大值,您只能得到一行。
SELECT *
FROM table
WHERE id = (SELECT MAX(id) FROM TABLE)
您無法order by
order by
發出order by
因為在表格上執行“完全掃描”。
以下查詢更好:
SELECT * FROM table WHERE id = (SELECT MAX(id) FROM table);
試試這個
SELECT top 1 id, Col2, row_number() over (order by id desc) FROM Table
人們總是可以選擇分析功能,這將為您提供更多控制
select tmp.row from ( select row, rank() over(partition by id order by id desc ) as rnk from table) tmp where tmp.rnk=1
如果您遇到rank()函數的問題,具體取決於數據類型,那么也可以從row_number()或dense_rank()中選擇。
你也可以使用COUNT(id)而不是MAX(id)
SELECT * FROM table WHERE id = (SELECT count(id) FROM table)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.