Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
微软SQL查询两大资本_Sql_Sql Server - Fatal编程技术网

微软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名的结果@更新了我的答案。我的答案得到你想要的了吗?如果是,请随意接受答案。如果您需要修改,请告诉我。我的答案是否符合您的要求?如果是,请随意接受答案。如果需要修改,请告诉我。