sql >> データベース >  >> RDS >> Sqlserver

SQL クエリ ヘルプ - 条件に基づいて複数の列を結合する

    次のようにできます (未テスト):

    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. ODP.NET、Managed Driver Beta(Oracle.ManagedDataAccess.dll)を使用したLDAPルックアップがC#アプリケーションで失敗する

    2. セッションによって実行されるOracleクエリ

    3. mysqlをインストールせずにmysqlimport?

    4. クエリで人間が読める定数を使用する