私はいくつかのコードを見直さなければならなかったし、誰かがやったことに遭遇し、私の方法が良いという理由を考えることができません。そして、それはおそらくそうではありません。したがって、より良い/より安全な/より効果的なのでしょうか?MAX対トップ1 - これは良いですか?
SELECT MAX(a_date) FROM a_table WHERE a_primary_key = 5 GROUP BY event_id
OR
SELECT TOP 1 a_date FROM a_table WHERE a_primary_key = 5 ORDER BY a_date
私は第二オプションでなくなっが、なぜわからない、それは右かどうだろう。
SQL ServerのTOP 1は、rowNum = 1を使用してOracleとは動作が異なります。注文前に最初に見つかったOracleを実際に取得します。したがって、このメソッドはSQL Serverでのみ有効です。このTOP 1とMax()の別の利点は、該当する注文を含める限り、必要な数の列を取得できることです。私はMax()を使ってテストし、GROUP BYでも1レコードしか得られないように見えることがわかりました。多分より強力なモジョーとして、サブクエリを使用せずに複数の列からトップを取得したい場合は、ただ1つの行を取得する方法を言うことができますか? – gordon