Home > Mobile >  mark value of a column if present in another table sql
mark value of a column if present in another table sql

Time:03-29

I have two tables

A:

ID
1
2
3
4

B:

ID
1
2
3

I need to introduce a column that marks if ID in A is present in B

ID flag
1 Y
2 Y
3 Y
4 N

is there any way to do this without adding a flag column to B and coalescing with join?

coalesce(B.flag,'N') as flag

CodePudding user response:

You can use a LEFT JOIN and a CASE WHEN clause:

select
  a.id,
  case when b.id is not null then 'Y' else 'N' as flag
from
  a left join b on a.id = b.id

CodePudding user response:

You are asking if something exists()...

select Id, 
  case when exists (select 0 from TableB b where b.Id = a.Id)
    then 'Y' else 'N'
  end as Flag
from TableA a;
  • Related