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>
根标签是贷款,下面是带有多个子标签的Schedule标签
我正在寻找一个查询,当指定PID标记值和LoanID值时,该查询将返回Amt标记中的值。
例如,当PID指定为5且LoanID指定为12345时,则应返回查询, PID,LoanID,Amt 5.12345.1000
提前感谢您的帮助。
答案 0 :(得分: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