以数据库顺序获取数据而不对其进行排序

Uma*_*y S 0 sql sql-server sql-server-2008

我有一个表在SQL数据库中有ShipCountry,ShipCity和Freight列.我尝试使用以下查询从该表中检索数据.

Select ShipCountry from CountryDetails Group by ShipCountry
Run Code Online (Sandbox Code Playgroud)

如果我运行此查询,我将按升序获得结果.而不是这个我需要数据库顺序的数据.如何通过SQL查询实现这一点?

注意:如果我运行以下查询,它将以数据库顺序返回数据.当我在查询中添加group by子句时,我正在获取排序数据.

Select ShipCountry from CountryDetails
Run Code Online (Sandbox Code Playgroud)

sca*_*dge 6

使用group by进行排序是不正确的..(group by用于聚合函数,分别为min,max或count)

如果你需要一个特定的顺序使用order by,而不是

Select ShipCountry from CountryDetails Order  by ShipCountry
Run Code Online (Sandbox Code Playgroud)

否则如果不想简单地使用

Select ShipCountry from CountryDetails
Run Code Online (Sandbox Code Playgroud)

请记住,db中存储的值没有正确的顺序..并且在用于检索数据的序列中选择.

每次需要订单时,您都必须明确地使用订单

避免"冗余值"..使用distinct而不是group by例如:

Select distinct ShipCountry from CountryDetails
Run Code Online (Sandbox Code Playgroud)

  • @UmapathyS只要您意识到由于数据分布的变化,数据库顺序可以在任何给定时间发生变化.这意味着结果集的排序顺序可能会从一天变为另一天.如果这是你可以忍受的东西,那么只需使用`SELECT FROM`. (2认同)