sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Query Hjälp - Sammanfoga flera kolumner baserat på tillstånd

Du kan göra något så här (otestat):

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 är att eftersom tabellen du vill ansluta till är datadriven kan du inte specificera den i FROM-satsen.



  1. Kan vi skapa funktionella index i MySql för funktionerna STORA och MINERA BOSTAVER

  2. Hur stänger jag med kraft en anslutning från en anslutningspool när det tar för lång tid att stänga?

  3. Hämta N:te element i en array som returnerar från funktionen string_to_array().

  4. TypeError:kan inte fly psycopg2.extensions.Binary to binary