什么是正确的Select语句?

odl*_*yer 1 sql sql-server-2000

//这是我的表1

    TransactionNum     Type  
    65658               0  
    65659               0  
    65660              449  
    65661               0  
Run Code Online (Sandbox Code Playgroud)

//这是我的表2

    Type    Description          
    445 Discount #1  
    446 Discount #2  
    447 Discount #3  
    448 Discount #4  
    449 Discount #5  
    450 Discount #6  
Run Code Online (Sandbox Code Playgroud)

//这是我的剧本

    SELECT a.TransactionNum,b.Description FROM Table1 a,Table2 b
    WHERE a.Type=b.Type ORDER BY TransactionNum  
Run Code Online (Sandbox Code Playgroud)

//结果

    TransactionNum   Description
    65659            Discount #4
Run Code Online (Sandbox Code Playgroud)

//我希望结果是这样的,结果中也应该包含0类型的TransactionNum,请帮我这个,我在这里使用SQL2000.

    TransactionNum      Description   
    65658               0  
    65659               0  
    65660              Discount #5  
    65661               0
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 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
Run Code Online (Sandbox Code Playgroud)

要进一步了解联接,请访问以下链接:

OUTPUT

????????????????????????????????
? TRANSACTIONNUM ? DESCRIPTION ?
????????????????????????????????
?          65658 ? 0           ?
?          65659 ? 0           ?
?          65660 ? Discount #5 ?
?          65661 ? 0           ?
????????????????????????????????
Run Code Online (Sandbox Code Playgroud)