1

//これは私のテーブル 1 です

    TransactionNum     Type  
    65658               0  
    65659               0  
    65660              449  
    65661               0  

//これは私のテーブル 2 です

    Type    Description          
    445 Discount #1  
    446 Discount #2  
    447 Discount #3  
    448 Discount #4  
    449 Discount #5  
    450 Discount #6  

//これは私のスクリプトです

    SELECT a.TransactionNum,b.Description FROM Table1 a,Table2 b
    WHERE a.Type=b.Type ORDER BY TransactionNum  

//結果

    TransactionNum   Description
    65659            Discount #4

//結果をこのようにしたい. 0 型の TransactionNum も結果に含める必要があります. 助けてください. ここでは SQL2000 を使用しています.

    TransactionNum      Description   
    65658               0  
    65659               0  
    65660              Discount #5  
    65661               0
4

3 に答える 3

9

LEFT JOIN代わりに使用し、

SELECT a.TransactionNum, 
       COALESCE(b.Description, CAST (a.Type AS VARCHAR(20))) AS Description
FROM   Table1 a LEFT JOIN Table2 b
          ON a.Type=b.Type
ORDER  BY a.TransactionNum

結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。

出力

╔════════════════╦═════════════╗
║ TRANSACTIONNUM ║ DESCRIPTION ║
╠════════════════╬═════════════╣
║          65658 ║ 0           ║
║          65659 ║ 0           ║
║          65660 ║ Discount #5 ║
║          65661 ║ 0           ║
╚════════════════╩═════════════╝
于 2013-04-19T06:33:02.767 に答える
1

Oracleでは、左外部結合を使用できます

     SELECT a.TransactionNum,b.Description FROM Table1 a,Table2 b
     WHERE a.Type=b.Type(+) ORDER BY TransactionNum 
于 2013-04-19T06:35:33.663 に答える