очень простой SQL-запрос в Oracle 9 - PullRequest
0 голосов
/ 27 ноября 2009

У меня есть две таблицы:

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

emp может иметь 0 или более адресов.

Я хочу напечатать результат следующим образом:

  • когдаУ emp есть 0 адресов, тогда: eno, ename, "без адреса"
  • , когда у emp есть 1 или более адресов, тогда: enomename, "address found"

Я использую oracle 9db

Ответы [ 3 ]

3 голосов
/ 27 ноября 2009
select empno, ename, 
    case when (select count(1) from address where empno=emp.empno)>0 
         then 'adress found'
         else 'no address'
    end
  from emp
0 голосов
/ 28 ноября 2009

выберите e.empno, e.ename, 'Address Found' в качестве статуса из
emp e, адрес
где e.empno = a.empno
и a.адрес не является нулевым
СОЮЗ ВСЕХ
выберите e.empno, e.ename, «No Address» в качестве статуса из
emp e, адрес
где e.empno = a.empno
и a.адрес нулевой

0 голосов
/ 27 ноября 2009

Попробуйте это

Входы:

Адресная таблица

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

Стол Emloyee

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

Запрос

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 

Выход:

empno   ename      Status
1        name1  Address found
2        name2  Address found
3        name3  No Address
4        name4  No Address
5        name5  No Address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...