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)
使用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)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |