У меня есть две таблицы:комплекс хранимая процедура в SQL Server
[PEOPLE]
PEOPLE_ID, LAST_NAME, FIRST_NAME, MIDDLE_NAME
[АДРЕС]
ADDRESS_ID, PEOPLE_ID, ADDRESS, EMAIL
(3, 1, 120 Woodland Road, <mailto:[email protected]> [email protected] )
Каждый человек может иметь ноль или более адресов.
Я попытался написать хранимую процедуру, которая вернет полное имя каждого человека как одно поле и его/ее адрес электронной почты в наборе результатов. Если адрес электронной почты не существует, верните строку «Нет электронной почты».
Я пробовал:
Select
ppl.Last_Name,
(select
CASE
WHEN Addr.Email is null THEN 'No Email'
ELSE Addr.Email
END AS Email
FROM [Address] AS Addr
where ppl.ID = Addr.PEOPLE_ID
)
FROM [PEOPLE] AS ppl
Когда я EXEC этот запрос я получил ошибку:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression
Может кто-нибудь помочь мне исправить запрос? Большое спасибо.
Ну, что вы хотите, чтобы запрос возвращался при наличии более одного электронного письма? –
Вы должны избегать описания таких проблем как «сложных». Так как вы этого не сделаете, в настоящее время знаете, как решить проблему, то по определению вы не можете судить о ее сложности. Для тех, кто знает решение проблемы, они не могут описывать это как сложное –