Pewujudan Perantaraan dengan PILIH TOP 100 Peratus
Sebelum SQL Server 2005, teknik yang dipanggil "pewujudan perantaraan" boleh digunakan untuk memaksa SQL Server untuk menghormati klausa ORDER BY dalam definisi paparan dengan memasukkan 100 PERATUS TERATAS dalam SELECT pernyataan.
Walau bagaimanapun, penggunaannya telah melangkaui definisi paparan dalam pernyataan SQL dinamik. Tujuan utama SELECT TOP 100 PERCENT dalam konteks ini adalah untuk memanfaatkan pewujudan pertengahan. Teknik ini melibatkan mencipta set hasil perantaraan dengan meletakkan klausa ORDER BY dalam binaan 100 PERATUS TERATAS.
Salah satu contoh teknik ini mungkin bermanfaat ialah apabila anda perlu menggunakan penapis pada hasil pertanyaan bersarang. . Pertimbangkan pertanyaan berikut:
SELECT foo FROM (SELECT foo FROM MyTable WHERE ISNUMERIC (foo) = 1) bar WHERE CAST(foo AS int) > 100
Dalam contoh ini, pertanyaan dalam mengembalikan set hasil yang kemudiannya ditapis dalam pertanyaan luar. Walau bagaimanapun, klausa ORDER BY dalam pertanyaan dalam mungkin tidak dihormati, yang membawa kepada keputusan yang tidak dapat diramalkan.
Dengan menambahkan SELECT 100 PERCENT TOP pada pertanyaan dalaman, anda boleh memaksa pewujudan perantaraan:
SELECT foo FROM (SELECT TOP 100 PERCENT foo FROM MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar WHERE CAST(foo AS int) > 100
Kewujudan perantaraan ini memastikan bahawa set hasil daripada pertanyaan dalaman dipesan sebelum ditapis di bahagian luar pertanyaan, memberikan hasil yang diingini.
Perlu ambil perhatian bahawa teknik ini hanya boleh digunakan apabila perlu dan dengan berhati-hati, kerana perubahan dalam konfigurasi pelayan (cth., tahap tampung, skema, indeks, kiraan baris) berpotensi mengganggu fungsinya.
Atas ialah kandungan terperinci Bagaimanakah SELECT TOP 100 PERCENT Membolehkan Pemwujudan Perantaraan dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!