Can a select statement include nested result-sets? Can a select statement include nested result-sets? sql sql

Can a select statement include nested result-sets?


No. This isn't really possible.

SQL Server has no support for nested relations and NF²

Though you could use FOR XML PATH to bring it back in a hierarchical manner.

SELECT ID       AS [@ID],       Customer AS [@Customer],       (SELECT ID      AS [@ID],               OrderID AS [@OrderID],               Product AS [@Product]        FROM   OrderItems        WHERE  OrderItems.OrderID = o.ID        FOR XML PATH('OrderItems'), TYPE)FROM   Orders oFOR XML PATH('Order'), ROOT('Orders') 

Returns

   <Orders>      <Order ID="1" Customer="John">        <OrderItems ID="1" OrderID="1" Product="Guitar" />        <OrderItems ID="2" OrderID="1" Product="Bass" />      </Order>      <Order ID="2" Customer="James">        <OrderItems ID="3" OrderID="2" Product="Guitar" />        <OrderItems ID="4" OrderID="2" Product="Drums" />      </Order>    </Orders>

This doesn't repeat the parent Orders