sql >> データベース >  >> RDS >> Sqlserver

SQL 2008 で xml 列からデータを抽出する方法

    declare @T table
    (
      XMLCol xml
    )
    
    insert into @T values
    ('<Menu>
        <Id>1</Id>
          <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-1.jpg</Url>
      </Menu>
      <Menu>
        <Id>2</Id>
        <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-2.jpg</Url>
      </Menu>
      <Menu>
        <Id>3</Id>
        <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-3.jpg</Url>
      </Menu>
      <Menu>
        <Id>4</Id>
        <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-4.jpg</Url>
      </Menu>
      <Menu>
        <Id>5</Id>
        <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-5.jpg</Url>
      </Menu>')
    
    select X.N.value('Id[1]', 'int') as Id,
           X.N.value('Url[1]', 'varchar(max)') as Url
    from @T as T
      cross apply T.XMLCol.nodes('/Menu') as X(N)
      

    結果:

    Id          Url
    ----------- ---------------------------------------------------------------------
    1           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-1.jpg
    2           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-2.jpg
    3           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-3.jpg
    4           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-4.jpg
    5           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-5.jpg
      

    1. TSQLからWebサービスを呼び出すための最良の方法

    2. SQL のクエリでグループ化された非集計列を表示する

    3. Java MySQLのexecuteUpdate()は、INSERT ON ON DUPLICATE KEY UPDATEに対して何を返しますか?

    4. AWSRDSで一般ログとエラーログを有効にする方法