sql >> Databáze >  >> RDS >> Sqlserver

Nápověda SQL Query – Spojení více sloupců na základě podmínky

Můžete to udělat nějak takto (netestováno):

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

Problém, který máte, je ten, že vzhledem k tomu, že tabulka, ke které se chcete připojit, je řízena daty, nemůžete ji specifikovat v klauzuli FROM..



  1. Vysvětlete připojení MySQL jednoduchým jazykem

  2. Je mysql count(*) mnohem méně efektivní než count(specific_field)?

  3. PostgreSQL 9.3:Dynamická kontingenční tabulka

  4. Zhroucení kontejneru MySQL po změně /etc/mysql/my.cnf, jak upravit zpět?