如果只想用一個 SQL 就同時抓出 Master 和 Detail 資料,就會想用子查詢的做法,而當 Master 對應的 Detail 資料回傳不只一筆時,就會出現如下錯誤:
這時可以使用 FOR XML Path 來解決這個問題,它可以將子查詢 Detail 回傳的多筆資料轉成一筆 XML 格式,如此就沒有回傳不只一筆資料的問題了:
以上這個範例中,Path('') 是指不加入任何的 XML tag,單純將欄位組合成字串就好,預設不加東西的結果是會將資料加上 <row> tag 的:
P.S:Path 只是其中一種用法,詳細可參考Microsoft MSDN。
參考來源:黃昏的甘蔗
沒有留言:
張貼留言