關於查詢出表中最大值和最小值的問題

來源:互聯網
上載者:User
問題|最大值 曾經看到一個文章,是問怎麼一次(用一條查詢語句)就查詢出一個表中的最大值和最小值,其中一位這樣回答的:(拿Northwind的Products表為例)
select top 1 * from products order by UnitPrice
union
select top 1 * from products order by UnitPrice desc
上面這個似乎正確,可是其實在使用了Union的時候只有最後一條Select命令才能使用Order by參數,因此上面這樣是不行的,在查詢分析器中運行會爆出錯誤

下面提供查詢出最大值和最小值的方法:
declare @HighLow table
(
ProductName varchar(50)
)
insert @HighLow select top 1 Productname from Products order by Unitprice desc
insert @HighLow select top 1 Productname from Products order by Unitprice
select ProductName from @HighLow
這種方法不是一次就查詢出最大值和最小值,而是使用了一個Table變數,將查詢出的最大值和最小值儲存入這個表中。


下面這個例子使用了Northwind資料庫,取出每種書目中價格最貴的3本書:
declare @Category table
(
id int identity(1,1) not null,
CategoryId int,
CategoryName varchar(50)
)
declare @MostExpensive table
(
ProductName varchar(50)
)
declare @counter int,@number int
set @counter=0
insert @Category select CategoryId,CategoryName from Categories
select @number=count(*) from @Category
while @counter<@number
begin
set @counter=@counter+1
insert @MostExpensive select top 3 ProductName from products where categoryid=(select CategoryId from @Category where id=@counter) order by UnitPrice desc
end
select * from @MostExpensive



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。