Menentukan nilai maksimum dua lajur dalam SQL Server: Perbandingan dengan fungsi Max .NET
Dalam .NET, fungsi Max menyediakan cara yang mudah untuk menentukan yang lebih besar daripada dua nombor. Walau bagaimanapun, fungsi MAX berkelakuan berbeza apabila menggunakan SQL Server. Ia biasanya digunakan sebagai fungsi agregat yang mengembalikan nilai maksimum lajur yang ditentukan merentas semua baris dalam jadual.
Untuk keadaan di mana fungsi Max perlu beroperasi pada dua nilai tertentu berbanding keseluruhan lajur, SQL Server menyediakan beberapa pilihan. Pendekatan biasa ialah menggunakan pernyataan UNION, di mana anda mencipta jadual baharu yang mengandungi dua lajur nilai untuk dibandingkan, dan kemudian menggunakan fungsi MAX pada jadual gabungan.
Walau bagaimanapun, pendekatan ini boleh menjadi rumit apabila berurusan dengan berbilang lajur dan ia mempunyai had dalam mengendalikan nilai nol. Penyelesaian yang lebih elegan telah diperkenalkan dalam SQL Server 2008, yang melibatkan penggunaan jadual terbitan.
Jawapan yang disediakan mencadangkan penyelesaian yang berkuasa dan fleksibel yang menggunakan jadual terbitan:
<code class="language-sql">SELECT o.OrderId, (SELECT MAX(Price) FROM (VALUES (o.NegotiatedPrice),(o.SuggestedPrice)) AS AllPrices(Price)) AS MaxPrice FROM Order o</code>
Pendekatan jadual terbitan ini menawarkan beberapa kelebihan:
Atas ialah kandungan terperinci Bagaimana untuk mencari maksimum dua lajur dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!