sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2000 から 2008 への移行 - DISTINCT 使用時の ORDER BY の問題

    これを行うことで、セマンティクスを少し変更できます:

    SELECT ZipCode FROM (SELECT DISTINCT ZipCode =LEFT(tz.Zipcode, 5) FROM dbo.TerritoryZip) AS xORDER BY ZipCode;  

    クエリはより冗長であり、それでも触れずにはいられないため、実際には問題は解決しません。あなたがすでに提案した修正は、何が起こっているかについてより明確であるため、私の考えではより良いです。

    厳しい言い方をするつもりはありませんが、「このタイプの SQL のすべてのインスタンスを見つける」ことができないと思われる場合、テストをどのように信頼できますか?

    2000 モードを維持することは最適な答えではないことをお勧めします。その理由は、これにより他の構文が壊れる可能性があるためです (たとえば、動的管理関数を呼び出す方法 - これポール・ランダルのブログ投稿 およびそれに対する私のコメント)、修正する必要があるコードを永続化するリスクもあります (たとえば、古いスタイルの *= / =* 2000 互換モードでは有効ですが、2008 R2 -> 2000 互換をサポートしないデナリから移行すると無効になります)。

    「厳密」設定はありませんが、Erland Sommarskog の SET STRICT_CHECKS ON; に投票できます。提案 .



    1. この文字列をPHPで保存するにはどうすればよいですか?

    2. SQLJOINの難しさ-結合条件で行を制限する方法が必要なようです

    3. SQL Serverで、特定のテーブルに対してCREATE TABLEステートメントを生成するにはどうすればよいですか?

    4. 今日の日付のmysql結果を取得するにはどうすればよいですか?