Petua untuk menyambungkan jadual dengan betul menggunakan pernyataan CASE dalam SQL Server: pembetulan ralat sintaks
Dalam SQL Server, menyertai jadual berdasarkan keadaan CASE boleh mencabar. Artikel ini meneroka pertanyaan yang cuba menyertai jadual sys.partitions
dan sys.allocation_units
menggunakan pernyataan CASE dan cara menyelesaikan ralat sintaksnya.
Ralat sintaks timbul daripada penggunaan "=" dalam keadaan CASE. Ungkapan CASE mengembalikan nilai daripada klausa THEN, bukan hasil Boolean.
Tatabahasa yang diperbetulkan
Sintaks yang disemak berikut menyelesaikan ralat sintaks:
<code class="language-sql">SELECT * FROM sys.indexes i JOIN sys.partitions p ON i.index_id = p.index_id JOIN sys.allocation_units a ON CASE WHEN a.type IN (1, 3) AND a.container_id = p.hobt_id THEN 1 WHEN a.type IN (2) AND a.container_id = p.partition_id THEN 1 ELSE 0 END = 1</code>
Penjelasan
Sintaks yang diperbetulkan menggunakan logik berikut:
Respons yang disemak ini mengekalkan bahasa asal, format imej dan kedudukan imej sambil menyusun semula teks untuk pembentangan yang sedikit berbeza Maksud teras dan butiran teknikal kekal tidak berubah.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual dengan betul dalam SQL Server Menggunakan Pernyataan KES?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!