1

BZLoans 表有一个名为 LnXML 的列,其中包含 XML 数据/该表还有一个 Loanid 列,其中存储了 Loanid。示例数据显示在下面 LoanID = 12345 行的 LnXML 字段中:

<Loans>  
<Schedule>
    <PID>4</PID>
           <Amt>2100<dAmt>
</Schedule>
<Schedule>
    <PID>5</PID>
         <Amt>1000</Amt>
</Schedule>
</Loans>

根标签是 Loans,下面是带有多个子标签的 Schedule 标签

我正在寻找一个查询,当指定 PID 标记值和 LoanID 值时,该查询将返回 Amt 标记中的值。

例如,当 PID 指定为 5 且 LoanID 为 12345 时,查询应返回 PID, LoanID, Amt 5.12345.1000

在此先感谢您的帮助。

4

1 回答 1

0
declare @Loanid int = 12345
declare @PID int = 5

select @PID as PID,
       @Loanid as Loanid,
       L.X.value('.', 'int') as Amt
from BZLoans as B
  cross apply B.LnXML.nodes('/Loans/Schedule[PID = sql:variable("@PID")]/Amt') as L(X)
where B.Loanid = @Loanid
于 2013-05-09T05:31:55.200 回答