16

Transact-SQLには便利な機能がありますSELECT TOP 4 [whatever] FROM.........

最初のエントリではなく、テーブルの最後の「n」エントリを返すSELECTクエリを作成したいと思います。

これは、SELECT TOPを使用して、テーブルに入力された最初の4つのアイテムを返すために使用するクエリです。

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

5 に答える 5

38

表の順序を から に変更しASCますDESC

于 2012-05-17T11:30:00.803 に答える
21

それはまさにこれです: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 |
于 2012-05-17T13:22:44.060 に答える
8

TOP を引き続き使用し、順序を逆にします。

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 インジェクションに対して脆弱です。)

于 2012-05-17T11:29:49.593 に答える
1

クエリの最後にDESC代わりに使用することで、順序を逆にすることができます。ASC

于 2012-05-17T11:29:54.253 に答える