Rumah >pangkalan data >SQL >SQL Server menggunakan CROSS APPLY dan OUTER APPLY untuk melaksanakan pertanyaan sambungan
Artikel ini membawakan anda pengetahuan yang berkaitan tentang SQL server Ia terutamanya memperkenalkan kaedah SQL Server menggunakan CROSS APPLY dan OUTER APPLY untuk melaksanakan pertanyaan sambungan lihatlah bersama, semoga bermanfaat untuk semua.
Kajian yang disyorkan: "Tutorial SQL"
CROSS APPLY dan OUTER APPLY boleh lakukan:
Apabila satu rekod dalam jadual kiri dikaitkan dengan berbilang rekod dalam jadual kanan, saya perlu mengawal sama ada satu atau lebih rekod dalam jadual kanan sepadan dengan jadual kiri.
Terdapat dua jadual: Pelajar (jadual pelajar) dan Skor (jadual skor adalah seperti berikut:
SELECT T1.StudentNo, T1.Name, T2.ExamScore, T2.ExamDate FROM Student AS T1 CROSS APPLY ( SELECT TOP 2 * FROM Score AS T WHERE T1.StudentNo = T.StudentNo ORDER BY T.ExamDate DESC ) AS T2Hasil: 2. APPLY Prinsipnya adalah sama, kecuali apabila pemadanan gagal, jadual kiri dan jadual kanan juga akan digabungkan menjadi satu rekod untuk output, tetapi medan output jadual kanan adalah batal. (Serupa dengan LEFT OUTER JOIN) Soal dua markah ujian terakhir setiap pelajar dan isikan markah nol untuk pelajar yang tidak mengambil ujian
Keputusan:
SELECT T1.StudentNo, T1.Name, T2.ExamScore, T2.ExamDate FROM Student AS T1 OUTER APPLY ( SELECT TOP 2 * FROM Score AS T WHERE T1.StudentNo = T.StudentNo ORDER BY T.ExamDate DESC ) AS T2
3. Senario aplikasi
1 Digunakan dalam kombinasi dengan fungsi bernilai jadual: Terdapat jadual seperti ini:Ia adalah jadual yang sangat mudah dengan hanya satu bidang. penukaran asas.
SELECT * FROM #T a CROSS APPLY [dbo].[F_TConversion](a.num)Untuk meringkaskan: Jika set hasil pertanyaan perlu menggunakan fungsi bernilai jadual untuk memproses nilai medan, sila gunakan CROSS APPLY~
2. Penggunaan subquery teratas:
Terdapat jadual pelajar dengan tiga medan: nama, subjek dan skor, seperti berikut:
I Untuk melihat nama, subjek dan markah tempat pertama dalam bahasa Cina, dua teratas dalam matematik dan tiga teratas dalam bahasa Inggeris, kaedah pelaksanaan menggunakan silang adalah seperti berikut:SELECT b.* FROM ( select Subject='Chiness',num=1 union all select 'Math',2 union all select 'English',3) a cross apply (select top(a.num) * from Students where Subject=a.Subject ) bKajian yang disyorkan : "
Tutorial SQL"
Atas ialah kandungan terperinci SQL Server menggunakan CROSS APPLY dan OUTER APPLY untuk melaksanakan pertanyaan sambungan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!