Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Помощ за SQL Query - Обединяване на множество колони въз основа на условие

Бихте могли да го направите нещо подобно (непроверено):

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

Проблемът, който имате, е, че тъй като таблицата, към която искате да се присъедините, се управлява от данни, не можете да я посочите в клаузата 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. Как да получите брой дублиращи се редове на колона DISTINCT като друга колона?

  2. Как да създам условна клауза WHERE?

  3. Скрипт на SQL Server 2008 за премахване на PK ограничение, което има генерирано от системата име

  4. Как да направите вътрешно присъединяване на номер на ред в sql сървър

  5. SQL Server:архивиране на всички бази данни