Я думаю следующее делает то, что вы хотите:
declare @ProductName nvarchar(max);
select @ProductName = coalesce(@ProductName + ',', '') + p.ProductName
from Products p join
[Order Details] od
on p.ProductID = od.ProductID
where @OrderID = od.orderID ;
return @ProductName;
Я не рекомендую эту конструкцию, потому что я не уверен на 100%, что на самом деле она гарантированно работает правильно (и я не знаю предупреждений против нее). На практике, однако, это работает.
Однако ваш тренер не должен побуждать вас искать хитрости в языке. Вместо этого он должен рассказать вам о string_agg()
, который доступен начиная с SQL Server 2017.