用SQL语句如何求出一列最大的10个值
刚刚学习Oracle,想问一下用SQL语句如何求出一列最大的10个值?例如我要求出10种最贵的商品……谢谢...
刚刚学习Oracle,
想问一下用SQL语句如何求出一列最大的10个值?
例如我要求出10种最贵的商品……
谢谢 展开
想问一下用SQL语句如何求出一列最大的10个值?
例如我要求出10种最贵的商品……
谢谢 展开
7个回答
展开全部
顶4楼,分析的很对,2、3楼的说法的确是sqlserver的写法。
附例子:
在ORACLE中实现SELECT
TOP
N
由于ORACLE不支持SELECT
TOP语句,所以在ORACLE中经常是用ORDER
BY跟ROWNUM的组合来实现SELECT
TOP
N的查询。
简单地说,实现方法如下所示:
SELECT
列名1...列名n
FROM
(SELECT
列名1...列名n
FROM
表名
ORDER
BY
列名1...列名n)
WHERE
ROWNUM
<=
N(抽出记录数)
ORDER
BY
ROWNUM
ASC
下面举个例子简单说明一下。
顾客表customer(id,name)有如下数据:
ID
NAME
01
first
02
Second
03
third
04
forth
05
fifth
06
sixth
07
seventh
08
eighth
09
ninth
10
tenth
11
last
则按NAME的字母顺抽出前三个顾客的SQL语句如下所示:
SELECT
*
FROM
(SELECT
*
FROM
CUSTOMER
ORDER
BY
NAME)
WHERE
ROWNUM
<=
3
ORDER
BY
ROWNUM
ASC
输出结果为:
ID
NAME
08
eighth
05
fifth
01
first
附例子:
在ORACLE中实现SELECT
TOP
N
由于ORACLE不支持SELECT
TOP语句,所以在ORACLE中经常是用ORDER
BY跟ROWNUM的组合来实现SELECT
TOP
N的查询。
简单地说,实现方法如下所示:
SELECT
列名1...列名n
FROM
(SELECT
列名1...列名n
FROM
表名
ORDER
BY
列名1...列名n)
WHERE
ROWNUM
<=
N(抽出记录数)
ORDER
BY
ROWNUM
ASC
下面举个例子简单说明一下。
顾客表customer(id,name)有如下数据:
ID
NAME
01
first
02
Second
03
third
04
forth
05
fifth
06
sixth
07
seventh
08
eighth
09
ninth
10
tenth
11
last
则按NAME的字母顺抽出前三个顾客的SQL语句如下所示:
SELECT
*
FROM
(SELECT
*
FROM
CUSTOMER
ORDER
BY
NAME)
WHERE
ROWNUM
<=
3
ORDER
BY
ROWNUM
ASC
输出结果为:
ID
NAME
08
eighth
05
fifth
01
first
展开全部
顶4楼,分析的很对,2、3楼的说法的确是sqlserver的写法。
附例子:
在ORACLE中实现SELECT TOP N
由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。
简单地说,实现方法如下所示:
SELECT 列名1...列名n FROM
(SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n)
WHERE ROWNUM <= N(抽出记录数)
ORDER BY ROWNUM ASC
下面举个例子简单说明一下。
顾客表customer(id,name)有如下数据:
ID NAME
01 first
02 Second
03 third
04 forth
05 fifth
06 sixth
07 seventh
08 eighth
09 ninth
10 tenth
11 last
则按NAME的字母顺抽出前三个顾客的SQL语句如下所示:
SELECT * FROM
(SELECT * FROM CUSTOMER ORDER BY NAME)
WHERE ROWNUM <= 3
ORDER BY ROWNUM ASC
输出结果为:
ID NAME
08 eighth
05 fifth
01 first
附例子:
在ORACLE中实现SELECT TOP N
由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。
简单地说,实现方法如下所示:
SELECT 列名1...列名n FROM
(SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n)
WHERE ROWNUM <= N(抽出记录数)
ORDER BY ROWNUM ASC
下面举个例子简单说明一下。
顾客表customer(id,name)有如下数据:
ID NAME
01 first
02 Second
03 third
04 forth
05 fifth
06 sixth
07 seventh
08 eighth
09 ninth
10 tenth
11 last
则按NAME的字母顺抽出前三个顾客的SQL语句如下所示:
SELECT * FROM
(SELECT * FROM CUSTOMER ORDER BY NAME)
WHERE ROWNUM <= 3
ORDER BY ROWNUM ASC
输出结果为:
ID NAME
08 eighth
05 fifth
01 first
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from
(select * from [表名] order by [单价] desc)
where row_num < 11
(select * from [表名] order by [单价] desc)
where row_num < 11
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表名TABLE1 商品名NAME 价格PRICE
select top 10 NAME from TABLE1 order by PRICE desc
select top 10 NAME from TABLE1 order by PRICE desc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql:计算amount最大的前十位的总额:
select ifnull(sum(amount),0) from
(select * from t_p2p_subject order by amount desc) x LIMIT 0,10
select ifnull(sum(amount),0) from
(select * from t_p2p_subject order by amount desc) x LIMIT 0,10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询