Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Trợ giúp Truy vấn SQL - Nối Nhiều Cột Dựa trên Điều kiện

Bạn có thể làm điều đó như thế này (chưa được kiểm tra):

select 
  t.Buyer, 
  t.Seller, 
  case when t.Buyer like 'B%' THEN (select BookName from Book where BookId = t.Buyer)
                              ELSE (select CpName from Counterparty where CPId = t.Buyer)
  end BuyerName,
  case when t.Buyer like 'B%' THEN (select DeskName from Desk where BookId = t.Buyer)
                              ELSE NULL
  end BuyerDeskName,
  case when t.Seller like 'B%' THEN (select BookName from Book where BookId = t.Seller)
                               ELSE (select CpName from Counterparty where CPId = t.Seller)
  end SellerName,
  case when t.Seller like 'B%' THEN (select DeskName from Desk where BookId = t.Seller)
                               ELSE NULL
  end SellerDeskName,
from 
  Trade t

Vấn đề bạn gặp phải là, vì bảng bạn muốn tham gia là theo hướng dữ liệu, bạn không thể chỉ định nó trong mệnh đề FROM ..



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để trả về số ngẫu nhiên dưới dạng một cột trong SQL Server 2005?

  2. Đường ống được đặt tên là gì?

  3. Kết nối với SQL Server LocalDB bằng JDBC

  4. Không kết nối với SQL Server qua VPN

  5. Điều gì xảy ra trong SQL 2005 khi nó hết số lượng cho một cột tự động đánh số?