使用XML参数列表

一般来说, 使用XML作为列表参数,在数目比较少时,还可以.
DECLARE @XMLlist XML
       SELECT  @XMLList = '<list><i>2</i><i>4</i><i>6</i><i>8</i><i>10</i><i>15</i><i>17</i><i>21</i></list>'
SELECT x.y.value('.','int') AS IDs
          FROM @XMLList.nodes('/list/i') AS x ( y )


但是,如果数目上千了,就很慢,如果还用上述查询.

实际上,调整一下上面的语句,效果就很快了.

SELECT x.y.value('.','int') AS IDs
          FROM @XMLList.nodes('/list/i/text()') AS x ( y )


这个适用元素中心的XML,如果是属性中心的XML,

DECLARE @XMLlist XML
   SELECT  @XMLList = '<list><y i="2" /><y i="4" /><y i="6" /><y i="8" /><y i="10" /><y i="15" /><y i="17" /><y i="21" /></list>'
SELECT x.y.value('@i','int')
       FROM @XMLList.nodes('list/y') AS x( y )


速度很快,也不会有大数目变慢的情况,甚至还可以更快,

SELECT x.y.value('.','int')
       FROM @XMLList.nodes('list/y/@i') AS x( y )


你可能感兴趣的:(xml)