Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Saya butuh bantuan untuk mengonversi kueri T-SQL ke kueri yang didukung Oracle

Karena sekarang Anda mengalikan skor, pertama-tama kita perlu memutuskan, berapa skornya jika tidak ada kode yang cocok. Saya kira, seharusnya 0. Selanjutnya, kita harus memecah semua kode yang mungkin menjadi grup independen, yang hasilnya tidak bergantung pada anggota grup lain. Ini dia (1,2,4) dan (8). Dan tentukan aturan untuk setiap grup. Jadi

SELECT [id] ,[name],r = 
  -- At least one of values needed to get score > 0
  MAX(CASE WHEN code IN (1,2,4, 8) THEN 1.0  ELSE 0.0 END) *
  -- Now rules for every independent set of codes. Rule should return score if matched or 1.0 if not matched
  -- (1,2,4)
  coalesce(MAX(CASE WHEN [code] IN (1,2,4) THEN 0.70 END), 1.0 ) *
  -- (8) 
  coalesce(MAX(CASE WHEN [code] IN (8) THEN 0.75 END), 1.0)
  -- more ?
  FROM  (values (1, 'ali',4)
        ,(1, 'ali',1)
        ,(1, 'ali',8)
        ,(1, 'ali',2)
        ,(2, 'sunny',1)
     ,(4, 'arslan',4)) as t(id, name,code)
  GROUP BY id, name;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi panggilan VBA melalui VBA dan ADO

  2. Oracle tidak menghapus kursor setelah menutup set hasil

  3. Bagaimana cara menegakkan elemen xmlforest creat meskipun nilai ekspresinya nol?

  4. Membuat Pengguna Oracle jika belum ada

  5. ORA-01882:wilayah zona waktu tidak ditemukan di Entity Framework