7

私はSQL Serverを初めて使用します。今、私は次のようなクエリに出くわしました:

SELECT country FROM Hovercraft.Orders GROUP BY country ORDER BY ASC

order by 句に列名が指定されていません。これは可能ですか?SSMSはノーと言います。

ヨルク

4

3 に答える 3

10

おそらく誤植です -を注文するかを指定する必要があります。これは、列名、式、または出力内の列の番号にすることができます。あなたが見たクエリは後者の1つである可能性が最も高く、単に列番号を省略したものです1-次のように:

SELECT country FROM Hovercraft.Orders GROUP BY country ORDER BY 1 ASC

- したがって、これは出力の最初の列の内容 (すなわちcountry) によって順序付けられます。

于 2013-04-17T08:05:11.043 に答える
1

@Mahmoud Gamalに同意します。しかし、また、このようなハックを次のように書くことも可能です -

SELECT o.country, const_column = 1 
FROM Hovercraft.Orders o
GROUP BY o.country 
ORDER BY const_column ASC

この場合、ソートは実行されますが、行の順序は変更されません。

MS SQL 2005 の場合:

@Martin Smithの教授

MS SQL 2012 の場合:

@Martin Smithの教授

于 2013-04-17T07:57:41.100 に答える