user93796
user93796

Reputation: 18389

very simple SQL query in oracle 9

I have two tables:

emp (empno,ename)
address(empno,address)

emp can have 0 or more address.

I want to print a result as follows:

I am using oracle 9db

Upvotes: 0

Views: 122

Answers (3)

P Sharma
P Sharma

Reputation: 2728

select e.empno,e.ename, 'Address Found' as Status from
emp e, address a
where e.empno=a.empno
and a.address is not null
UNION ALL
select e.empno,e.ename, 'No Address' as Status from
emp e, address a
where e.empno=a.empno
and a.address is null

Upvotes: 0

priyanka.sarkar
priyanka.sarkar

Reputation: 26518

Try this

Inputs:

Address Table

empno   address
1   address1 for name1
1   address2 for name1
2   address1 for name2
2   address2 for name2
2   address3 for name2

Emloyee Table

empno   ename
1   name1
2   name2
3   name3
4   name4
5   name5

Query

select distinct(e.empno),e.ename,
    case when
    a.address IS null then 'No Address' else 'Address found' end as Status
    from @emp e
    left join @address a
    on e.empno  = a.empno 

Output:

empno   ename      Status
1        name1  Address found
2        name2  Address found
3        name3  No Address
4        name4  No Address
5        name5  No Address

Upvotes: 0

Erich Kitzmueller
Erich Kitzmueller

Reputation: 36987

select empno, ename, 
    case when (select count(1) from address where empno=emp.empno)>0 
         then 'adress found'
         else 'no address'
    end
  from emp

Upvotes: 3

Related Questions