データを XML としてクエリできるように、文字列を XML データ型に変換するにはどうすればよいですか。
例(このための元のSQLを提供した「mellamokb the Wise」に感謝)
以下のコードは、xmlstring が XML 型の場合に正常に機能します ( DEMOを参照) 。
select id, name
from Data
cross apply (
select Destination.value('data(@Name)', 'varchar(50)') as name
from [xmlstring].nodes('/Holidays/Summer/Regions/Destinations/Destination') D(Destination)
) Destinations(Name)
ただし、xmlString が varchar 型の場合、文字列を XML ( DEMO )に変換しているにもかかわらず、エラーが発生します。
select id, name
from Data
cross apply (
select Destination.value('data(@Name)', 'varchar(50)') as name
from CONVERT(xml,[xmlstring]).nodes('/Holidays/Summer/Regions/Destinations/Destination') D(Destination)
) Destinations(Name)