Penggunaan TOP 100 PERCENT dalam SQL Server
Sebelum SQL Server 2005, klausa SELECT TOP 100 PERCENT boleh digunakan sebagai helah untuk memaksa penggunaan klausa ORDER BY dalam definisi paparan. Walau bagaimanapun, penggunaannya melangkaui definisi paparan dalam pernyataan SQL dinamik dalam pelbagai aplikasi.
Pewujudan Perantaraan
Tujuan utama PILIH 100 PERATUS TERBAIK dalam SQL dinamik adalah untuk " kewujudan pertengahan." Teknik ini melibatkan mencipta jadual perantaraan atau hasil pertanyaan sebagai stor sementara sebelum pelaksanaan pertanyaan akhir. Dengan menggunakan 100 PERATUS TERBAIK, stor sementara diwujudkan dengan semua baris daripada pertanyaan asal, memastikan susunan baris itu dipelihara.
Contoh Berfungsi
Pertimbangkan pertanyaan berikut:
SELECT foo FROM MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
Pertanyaan ini mungkin gagal disebabkan oleh penilaian yang tidak tentu tertib antara klausa WHERE dan ORDER BY. Walau bagaimanapun, dengan menggunakan 100 PERCENT TOP, pertanyaan berikut akan berfungsi:
SELECT foo FROM (SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar WHERE CAST(foo AS int) > 100
Dalam SQL Server 2000 dan lebih awal, teknik ini memaksa pewujudan pertanyaan dalaman, memastikan susunan baris dipelihara. Tingkah laku yang sama ini masih wujud dalam SQL Server 2005.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penggunaan TOP 100 PERCENT yang berlebihan boleh mempunyai implikasi prestasi dan hanya boleh digunakan apabila benar-benar perlu. Adalah lebih baik untuk bergantung pada pembahagian meja yang jelas atau prosedur tersimpan untuk susunan baris apabila boleh.
Atas ialah kandungan terperinci Bila dan Mengapa Gunakan `SELECT TOP 100 PERCENT` dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!