如何根据表A上的列的条件从不同的表B中获取列?

coo*_*ner 0 sql sql-server relational-database

假设我有两个表表 A 和表 B

表A

id name remarks
 4  X    XXX
 6  Y    YYY
 7  Z    ZZZ
Run Code Online (Sandbox Code Playgroud)

表B

id Aid    remarks        edit_flag
 1   4     NULL            0
 2   6     YY changes      1
 3   7     Z cahnged       1
Run Code Online (Sandbox Code Playgroud)

所以,我想检索如下数据:

如果 edit_flag 为 1(即已编辑),则从表 B 中获取备注列否则(edit_flag 为 0)从表 A 中获取备注列,因为它没有被编辑

我在看这样的东西

if(edit_flag == 0) 
    then get remarks from table A 
else get remarks from table B
Run Code Online (Sandbox Code Playgroud)

所以我的结果表应该看起来像

Row_Counter remarks 
1 XXX 
2 YY changes 
3 Z changed
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 5

使用CASE

SELECT aID = a.id, name,
       remarks = CASE b.edit_flag 
                    WHEN 0 THEN a.remarks
                    WHEN 1 THEN b.remarks
                 END
FROM TableA a INNER JOIN TableB b ON a.id = b.Aid
Run Code Online (Sandbox Code Playgroud)