[sqlserver] nvarcharに格納されたXML文字列をXMLに変換して特定の要素を取得したりする

(環境:SQL Server 2008 R2)

nvarchar(max)データ型の列にXML文字列を格納したカラムがある。
このままではxmlデータ型のメソッド(value()やexist()など)が
使えないので要素の検索などが容易にできない。

この場合は一旦nvarcharをxmlデータ型に変換する。

SELECT
  CAST( 
    CAST( 
      col_name AS VARCHAR (MAX)
    ) AS XML
  ) AS xmlData 
FROM
  table_name

あとはこれを別表にするなり、副問合せにするなり、
テンプテーブルに書き込むなりして
xmlデータ型として扱えば良い。
xmlデータ型の操作についてはググッてください)