一般来说, 使用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 )