SELECT emp.emp_id, CONCAT(emp.fname, ' ', emp.lname) emp_name, > (SELECT CONCAT(boss.fname, ' ', boss.lname) > FROM employee boss > WHERE boss.emp_id = emp.superior_emp_id) boss_name > FROM employee emp > WHERE emp.superior_emp_id IS NOT NULL > ORDER BY (SELECT boss.lname FROM employee boss > WHERE boss.emp_id = emp.superior_emp_id), emp.lname; ++++
| emp_id | emp_name | boss_name |
++++
| 14 | Cindy Mason | John Blake |
| 15 | Frank Portman | John Blake |
| 9 | Jane Grossman | Helen Fleming |
| 8 | Sarah Parker | Helen Fleming |
| 7 | Chris Tucker | Helen Fleming |
| 13 | John Blake | Susan Hawthorne |
| 6 | Helen Fleming | Susan Hawthorne |
| 5 | John Gooding | Susan Hawthorne |
| 16 | Theresa Markham | Susan Hawthorne |
| 10 | Paula Roberts | Susan Hawthorne |
| 17 | Beth Fowler | Theresa Markham |
| 18 | Rick Tulman | Theresa Markham |
| 12 | Samantha Jameson | Paula Roberts |
| 11 | Thomas Ziegler | Paula Roberts |
| 2 | Susan Barker | Michael Smith |
| 3 | Robert Tyler | Michael Smith |
| 4 | Susan Hawthorne | Robert Tyler |
++++
17 rows in set (0.01 sec)
Этот запрос использует два связанных скалярных подзапроса: один
в блоке
select
, извлекающий полное имя руководителя каждого со
трудника, а другой в блоке
order
by
, возвращающий только фамилию
руководителя сотрудника для целей сортировки.
Наряду с применением скалярных подзапросов в выражении
select
можно использовать несвязанные скалярные подзапросы, формирую
щие значения для выражения
insert
. Например, предполагается соз
дать новую строку счета. Предоставлены следующие данные:
• Тип счета («savings account»)
• Федеральный ID клиента («555555555»)