declare @t nvarchar(max)
set @t='<ApplicationInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ApplicationDate>2019-09-24T14:06:03.097</ApplicationDate>
<QueryReason>1</QueryReason>
<Mobile>15801606585</Mobile>
<ApplyAmount>1000.00</ApplyAmount>
<CustomerType>PA</CustomerType>
</ApplicationInfo>'
select cast(@t as xml).value('data(/ApplicationInfo/CustomerType)[1]', 'varchar(30)')CustomerType
DECLARE @x XML
SELECT @x = '
<People>
<dongsheng>
<Info Name="Email">dongsheng@xxyy.com</Info>
<Info Name="Phone">678945546</Info>
<Info Name="qq">36575</Info>
</dongsheng>
</People>'
-- 方法1
SELECT @x.value('data(/People/dongsheng/Info[@Name="Email"])[1]', 'varchar(30)')
-- 方法2
SELECT @x.value('(/People/dongsheng/Info[@Name="Email"])[1]', 'varchar(30)')
-- 方法3
SELECT C.value('.','varchar(30)') FROM @x.nodes('/People/dongsheng/Info[@Name="Email"]') T(C)
-- 方法4
SELECT C.value('(Info[@Name="Email"])[1]','varchar(30)') FROM @x.nodes('/People/dongsheng') T(C)
-- 方法5
SELECT C.value('(dongsheng/Info[@Name="Email"])[1]','varchar(30)') FROM @x.nodes('/People') T(C)
-- 方法6
SELECT C.value('.','varchar(30)') FROM @x.nodes('/People/dongsheng/Info') T(C) WHERE C.value('(.[@Name="Email"])[1]','varchar(30)') IS NOT NULL
-- 方法7
SELECT C.value('.','varchar(30)') FROM @x.nodes('/People/dongsheng/Info') T(C)
参考

所有评论(0)