Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bisakah saya menggunakan pernyataan CASE dalam kondisi JOIN?

Sebuah CASE ekspresi mengembalikan nilai dari THEN bagian dari klausa. Anda dapat menggunakannya sebagai berikut:

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

Perhatikan bahwa Anda perlu melakukan sesuatu dengan nilai yang dikembalikan, mis. bandingkan dengan 1. Pernyataan Anda berusaha mengembalikan nilai tugas atau tes untuk kesetaraan, yang keduanya tidak masuk akal dalam konteks CASE /THEN ayat. (Jika BOOLEAN adalah tipe data maka uji kesetaraan akan masuk akal.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan Anda akan menggunakan fungsi bernilai tabel?

  2. Alasan untuk Meningkatkan ke SQL Server 2017

  3. Perbedaan antara gabungan kiri dan gabungan kanan di SQL Server

  4. Memformat Angka dengan mengisi dengan nol di depan di SQL Server

  5. Desain database:satu tabel besar atau tabel terpisah?