Bazı kodları incelemek zorunda kaldım ve birinin yaptığı bir şeye rastladım ve benim yolumun daha iyi olduğuna dair bir sebep düşünemedim. Ve muhtemelen değil, yani, daha iyi/daha güvenli/daha etkili?MAX vs Top 1 - hangisi daha iyi?
SELECT MAX(a_date) FROM a_table WHERE a_primary_key = 5 GROUP BY event_id
YA ben 2 seçeneği ile giderdi
SELECT TOP 1 a_date FROM a_table WHERE a_primary_key = 5 ORDER BY a_date
, ama neden emin değilim ve Doğru olup olmadığını.
SQL Server TOP 1, rowNum = 1 kullanarak Oracle'dan farklı davranır. Oracle aslında sipariş önce ÖNCE bulduğu ilk yakala, bu nedenle bu yöntem sadece SQL Server için geçerlidir. Bu TOP 1 ile Max() arasındaki bir diğer avantaj, geçerli siparişi verdiğiniz sürece istediğiniz kadar çok sütun alabilmenizdir. Max() kullanarak test ettim ve GROUP BY ile bile sadece 1 kayıt vermediğini gördüm. Belki de daha güçlü bir mojo gibi bir kişi, bir alt sorgu ile birden çok sütuntan en üstte almak istiyorsanız sadece bir satırın nasıl alınacağını söyleyebilir? – gordon