我希望这是一个简单的问题。我已经搜索过但无法找到一个好的工作示例。
Transact SQL有一个方便的SELECT TOP 4 [whatever] FROM.........
我只是想从表中选择最后4个条目,不要太多问它是不是真的?!!
你会认为M $现在已经覆盖了这个!!
sql = "SELECT TOP 4 [news_title], [news_date_added], [news_short_description],
[news_ID] FROM [Web_Xtr_News] WHERE ([news_type] = 2 OR [news_type] = 3) AND
[news_language] = '" + Language + "' ORDER BY [news_ID] ASC"
这将选择在表格中输入的第一个4项,我需要最后4个。
答案 0 :(得分:29)
将表格的顺序从ASC
更改为DESC
。
答案 1 :(得分:17)
正是这样:http://www.sqlfiddle.com/#!3/6c813/1
with bottom as(
select top 4 *
from tbl
order by n desc
)
select *
from bottom
order by n
数据来源:
| N |
|----|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
输出:
| N |
|----|
| 7 |
| 8 |
| 9 |
| 10 |
答案 2 :(得分:5)
为什么不继续使用TOP,并颠倒顺序?
sql = "SELECT TOP 4 [news_title], [news_date_added], [news_short_description],
[news_ID] FROM [Web_Xtr_News] WHERE ([news_type] = 2 OR [news_type] = 3) AND
[news_language] = '" + Language + "' ORDER BY [news_ID] DESC"
重写当然使用参数,你的原始文件很容易被SQL注入。
答案 3 :(得分:0)
您可以在查询结束时使用DESC
代替ASC
来反转排序。