微软SQL查询两大资本
以下是说明: 在微软SQL查询两大资本,sql,sql-server,Sql,Sql Server,以下是说明: 在DocStatus表中显示两个最大的资本及其对应的公司名称 这是表DocStatus: DocID Company Capital 2001 Teewai.com Inc. 250000.00 2002 Fave Company 250000.00 2003 Goldilocks Bakeshop Corp 500000.00 2004 Collegi
DocStatus
表中显示两个最大的资本及其对应的公司名称
这是表DocStatus
:
DocID Company Capital
2001 Teewai.com Inc. 250000.00
2002 Fave Company 250000.00
2003 Goldilocks Bakeshop Corp 500000.00
2004 Collegian Exponent Inc. 100000.00
2005 Uniphil Computer Inc. 250000.00
问题:
对此的正确查询是什么?多谢各位
(500000和250000是前两名,但有3家公司拥有相同的250000资本)如果您只需要前两名记录,请尝试以下方法:
SELECT TOP 2 *
FROM DocStatus
ORDER BY Capital DESC,Company
它将按资本的降序对结果进行排序。如果多个记录具有相同的资本,它将按照公司名称的升序对它们进行排序。最后,选择前2条记录
结果将是:
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2002 Fave Company 250000
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2001 Teewai.com Inc. 250000
2002 Fave Company 250000
2005 Uniphil Computer Inc. 250000
见结果
或
如果您想要拥有第一和第二高资本的公司,请使用:
SELECT TOP(2) WITH TIES * FROM DocStatus
ORDER BY Capital DESC
此子句的优点在于,它可以与with TIES
子句一起使用,以检索基本结果集的所有类似行
结果将是:
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2002 Fave Company 250000
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2001 Teewai.com Inc. 250000
2002 Fave Company 250000
2005 Uniphil Computer Inc. 250000
阅读更多信息。如果您只需要最上面的两条记录,请尝试以下操作:
SELECT TOP 2 *
FROM DocStatus
ORDER BY Capital DESC,Company
它将按资本的降序对结果进行排序。如果多个记录具有相同的资本,它将按照公司名称的升序对它们进行排序。最后,选择前2条记录
结果将是:
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2002 Fave Company 250000
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2001 Teewai.com Inc. 250000
2002 Fave Company 250000
2005 Uniphil Computer Inc. 250000
见结果
或
如果您想要拥有第一和第二高资本的公司,请使用:
SELECT TOP(2) WITH TIES * FROM DocStatus
ORDER BY Capital DESC
此子句的优点在于,它可以与with TIES
子句一起使用,以检索基本结果集的所有类似行
结果将是:
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2002 Fave Company 250000
DOCID COMPANY CAPITAL
2003 Goldilocks Bakeshop Corp 500000
2001 Teewai.com Inc. 250000
2002 Fave Company 250000
2005 Uniphil Computer Inc. 250000
阅读更多信息。试试这个
select top(2) with ties * from table order by Capital desc
试试这个
select top(2) with ties * from table order by Capital desc
不好!如果出现
ties
top(n)`将不会给出所需的结果!您需要将与领带一起使用
才能获得前N名的结果@VijaykumarHadalgi:更新了我的答案。不好!如果出现ties
top(n)`将不会给出所需的结果!您需要将与领带一起使用
才能获得前N名的结果@更新了我的答案。我的答案得到你想要的了吗?如果是,请随意接受答案。如果您需要修改,请告诉我。我的答案是否符合您的要求?如果是,请随意接受答案。如果需要修改,请告诉我。