SQL Server XML列过滤的Where子句

时间:2016-11-21 13:52:53

标签: sql-server xquery

如何在结果中显示<tr align="center">的值?

这是示例XML:

declare @html as xml = N'<table cellpadding="0" cellspacing="0" width="100%"><tr align="center">
<td width="33%" class="categories_name">ACER Laptop CPU Fan</td>
<td width="33%" class="selettype"><a name="partno">Select by Part number</a></td>
<td width="34%" class="unselettype"><a href="index.php/cPath/681_689#model"><font color="#1830B4">Select by Model</font></a></td>
</tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/3847/v11.V1.B2028.F.GN">11.V1.B2028.F.GN</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/3782/v13.V1.B2835.F.GN">13.V1.B2835.F.GN</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid"><a href="https://www.battery-adapter.com/product_info.php/products_id/205523/v13.V1B3956.F.GN">13.V1B3956.F.GN</a></td></tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/2060/v13N0-7NA0G01">13N0-7NA0G01</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/3631/v23.10044">23.10044</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid"><a href="https://www.battery-adapter.com/product_info.php/products_id/3847/v23.10141.001">23.10141.001</a></td></tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/490/v23.10703.001">23.10703.001</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/374/v23.10794.001">23.10794.001</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/3680/v23.ABHV5.001">23.ABHV5.001</a></td></tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/3853/v23.APQ0N.001">23.APQ0N.001</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/1538/v23.M9UN2.001">23.M9UN2.001</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid"><a href="https://www.battery-adapter.com/product_info.php/products_id/205523/v23.N2802.001">23.N2802.001</a></td></tr></table>
<table cellpadding="0" cellspacing="0" width="100%"><tr align="center">
<td width="33" class="categories_name">ACER Laptop CPU Fan</td>
<td width="33%" class="selettype"><a name="partno">Select by Part number</a></td>
<td width="34%" class="unselettype"><a href="index.php/cPath/681_689#model"><font color="#1830B4">Select by Model</font></a></td>
</tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/3847/v11.V1.B2028.F.GN">11.V1.B2028.F.GN</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/3782/v13.V1.B2835.F.GN">13.V1.B2835.F.GN</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid"><a href="https://www.battery-adapter.com/product_info.php/products_id/205523/v13.V1B3956.F.GN">13.V1B3956.F.GN</a></td></tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/2060/v13N0-7NA0G01">13N0-7NA0G01</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/3631/v23.10044">23.10044</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid"><a href="https://www.battery-adapter.com/product_info.php/products_id/3847/v23.10141.001">23.10141.001</a></td></tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/490/v23.10703.001">23.10703.001</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/374/v23.10794.001">23.10794.001</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/3680/v23.ABHV5.001">23.ABHV5.001</a></td></tr><tr><td width="33%" class="main" style="BORDER-left: #E39705 1px solid;"><a href="https://www.battery-adapter.com/product_info.php/products_id/3853/v23.APQ0N.001">23.APQ0N.001</a></td><td width="33%" class="main"><a href="https://www.battery-adapter.com/product_info.php/products_id/1538/v23.M9UN2.001">23.M9UN2.001</a></td><td width="34%" class="main" style="BORDER-right: #E39705 1px solid"><a href="https://www.battery-adapter.com/product_info.php/products_id/205523/v23.N2802.001">23.N2802.001</a></td></tr></table>

存储过程代码:

SELECT  
    t.v.value('.','nvarchar(max)') as a,
    t.v.value('@href','nvarchar(max)') as b
FROM    
    @html.nodes('table[1]/tr/td/a') as t(v)

1 个答案:

答案 0 :(得分:1)

您可以在节点方法的XQuery表达式中指定它。

SELECT  
    t.v.value('.','nvarchar(max)') as a,
    t.v.value('@href','nvarchar(max)') as b
FROM    
    @html.nodes('table[1]/tr[not(@align="center")]/td/a') as t(v)
相关问题