sql >> Database teknologi >  >> RDS >> Sqlserver

Hjælp til SQL-forespørgsler - Sammenføjning af flere kolonner baseret på tilstand

Du kunne gøre det sådan her (utestet):

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

Problemet du har er, at da den tabel du vil tilslutte dig er datadrevet, kan du ikke specificere den i FROM-sætningen.



  1. Oracle:hvordan føjer man minutter til et tidsstempel?

  2. skrivbart fælles tabeludtryk og flere insert-sætninger

  3. Mysql InnoDB ydeevneoptimering og indeksering

  4. Php kalder sqlserver backup database script, backup fil oprettet og derefter slettet