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

Bergabunglah dengan dua tabel, hanya gunakan nilai terbaru dari tabel kanan

Jika SQL Server 2005+

;WITH m AS 
(
   SELECT Partnum, Formula, RevisionNum,
     rn = ROW_NUMBER() OVER (PARTITION BY PartNum ORDER BY 
       CASE WHEN RevisionNum ='New' THEN 1 ELSE 2 END)
     FROM dbo.Material
)
SELECT p.PartNum, m.Formula, m.RevisionNum
FROM dbo.Parts AS p
INNER JOIN m ON p.PartNum = m.PartNum
WHERE m.rn = 1;

Meskipun penasaran, apa yang Anda lakukan ketika ada lebih dari 26 revisi (misalnya apa yang muncul setelah Z )?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memperbaiki konflik pemeriksaan dalam kueri SQL Server?

  2. Bagaimana cara mengubah jumlah menit ke format jj:mm di TSQL?

  3. Menggunakan SSDT, bagaimana cara mengatasi kesalahan SQL71561 ketika saya memiliki tampilan yang mereferensikan objek dalam database yang berbeda?

  4. Perilaku @@rowcount yang tidak terduga di dalam UDF di MS SQL 2019

  5. Transform/ Proyeksikan geometri dari satu SRID ke SRID lainnya