如何使用新列作为标志来显示空行?

Viv*_*ang -1 sql sql-server join left-join

我有表A:

id
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

和表B:

id
2
3
4
Run Code Online (Sandbox Code Playgroud)

我离开了加入 A 和 B:

id id
1  NULL
2  2 
3  3
4  4
5  NULL
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这样的新专栏:

id  id     flag
1   NULL   0
2   2      1
3   3      1
4   4      1
5   NULL   0
Run Code Online (Sandbox Code Playgroud)

Generally speaking, I want all rows in A but not in B to be flaged as 0 and want all rows in both tables to be flaged as 1. How can I achieve that? Better not use CTE.

use*_*983 6

This is just a CASE expression:

CASE WHEN B.id IS NULL THEN 0 ELSE 1 END AS flag
Run Code Online (Sandbox Code Playgroud)

Alternatively, you could use an IIF (which is shorthand CASE expression):

IIF(b.id IS NULL, 0,1)
Run Code Online (Sandbox Code Playgroud)