簡體   English   中英

如何選擇表中ID最大的整行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM