"ORDER BY"節の前にスペースがないアプリケーションでSQLを見つけました。私はこれがうまくいくことにも驚きました。整数のインクリメントリストで、このSQLは、これはまた、文字列を使用していますのMicrosoft SQL Server 2012のORDER BYの前に空白がありません - これはなぜ機能しますか?
select
*
FROM [counter] c
where c.counter_id = 1000ORDER by counter_id
で正常に動作します1列、counter_idは、単にそこにある。ここで、[カウンター]と呼ばれる数値のテーブルを、与えられた
例えば:
WHERE some_string = 'test'ORDER BY something
私の質問は、任意の潜在的な落とし穴や危険性は、このクエリを使用してありますか?逆に、何か利点はありますか?その空白(何らかのアプリケーションではよく考慮されるかもしれない)のネットワークトラフィックの8ビットはどれくらい保存されますか?
スキャナは、スペースとは無関係に、とにかくこれらのトークンを読み取ることができます。しかし、それを期待しないでください。後のバージョンでは、処理が異なる可能性があります。 – jarlh
クエリパーザまたはスキャナはこのように設計されていますが、わかりません。 'select * from tbl'も動作します。 – par
'O'は数字の有効な部分ではないので、その部分にすることはできず、' 1000ORDER 'は有効な列名(引用符なし)ではないので、' 1000'は数値の一部でなければならないのであいまいではありません。しかし、私はこれを使うことの不利な点しか見ません。 –