私はSQL Serverが新しくなっています。今度は次のようなクエリを見つけました:TSQL:列名なしのascによる並べ替え
SELECT country FROM Hovercraft.Orders GROUP BY country ORDER BY ASC
order by節に列名はありません。これは可能ですか? SSMSはいいえと言います。
イェルク
私はSQL Serverが新しくなっています。今度は次のようなクエリを見つけました:TSQL:列名なしのascによる並べ替え
SELECT country FROM Hovercraft.Orders GROUP BY country ORDER BY ASC
order by節に列名はありません。これは可能ですか? SSMSはいいえと言います。
イェルク
それはおそらく誤植だ - あなたはを指定する必要があり、あなたがすることによって発注されているものを。これは、列名、式、または出力の列の数値です。
SELECT country FROM Hovercraft.Orders GROUP BY country ORDER BY 1 ASC
- そう、これは、出力の最初の列(すなわちの内容によって発注になりますので、のような - それは単に列番号1
を省略していること、あなたが見ているクエリは、後者の一つであった可能性が高いです。 country
)。
+1あなたを目標にしていませんが、これを読んでいる人には、序盤の注文はプロダクションコードでぶち壊されます - SQL Server MVP Aaron Bertrandにはなぜブログエントリがありますか:[悪い習慣から蹴る:ORDER BY ordinal] ://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/06/bad-habits-to-kick-order-by-ordinal.aspx) – Bridge
ありがとう、マーク。私はただ見過ごしていないことを確かめたかっただけです。 –
私は@Mahmoudガマルに同意します。しかし、また、それはこのようなハック書き込むことが可能です - この場合
SELECT o.country, const_column = 1
FROM Hovercraft.Orders o
GROUP BY o.country
ORDER BY const_column ASC
を、ソートが実行されますが、行順番は変更されません。 MS SQL 2005で
:MS SQL 2012で
:
これは不可能です!... by句
順序は常に列名または列番号が必要です。
あなたはこのような状況が欲しいと私に応答してください、私はあなたが動的クエリを使って作業していると思いますか、私に知らせてください。
これは不可能です。
ありがとうございました。
[** 'ORDER BY' **句](http://msdn.microsoft.com/en-us/library/ms188385.aspx)に' order_by_expression'を入れる必要があります。しかし、なぜ***あなたはそうしたいのですか?この場合、SQL Serverはどの列を「ORDER BY」するべきですか? –
このクエリはどこから届いていますか? –
それは私のために働いたことはありませんでした。 –