Selecting from XML field where XML field = X(从 XML 字段中选择 XML 字段 = X)
本文介绍了从 XML 字段中选择 XML 字段 = X的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我试图从 .我似乎无法得到任何接近我想要的东西.有什么想法吗?Payment method 的 SQL Server 表中选择每条记录,但我想要 的值代码>
So I am trying to select each record out of a SQL Server table that has a <FIELD> equal to Payment method but I want the value of the <NEWVALUE>. I can't seem to get anything even close to what I want. Any ideas?
http://sqlfiddle.com/#!3/7c0a0/1/0
(小提琴内容)
create table T1(ID int identity(1, 1), XMLFIELD xml)
insert into T1(XMLFIELD) values('<ITEMS>
<ITEM>
<PROCESS>True</PROCESS>
<FIELD>Amount</FIELD>
<NEWVALUE>100</NEWVALUE>
<ACTION>0</ACTION>
<FIELDKEY>AMOUNT</FIELDKEY>
<DATATYPE>4</DATATYPE>
</ITEM>
<ITEM>
<PROCESS>True</PROCESS>
<FIELD>Payment method</FIELD>
<NEWVALUE>Credit card</NEWVALUE>
<ACTION>0</ACTION>
<FIELDKEY>PAYMENTMETHODCODE</FIELDKEY>
<DATATYPE>1</DATATYPE>
</ITEM>
</ITEMS>')
insert into T1(XMLFIELD) values('<ITEMS>
<ITEM>
<PROCESS>True</PROCESS>
<FIELD>Amount</FIELD>
<NEWVALUE>25</NEWVALUE>
<ACTION>0</ACTION>
<FIELDKEY>AMOUNT</FIELDKEY>
<DATATYPE>4</DATATYPE>
</ITEM>
<ITEM>
<PROCESS>True</PROCESS>
<FIELD>Payment method</FIELD>
<NEWVALUE>Debit</NEWVALUE>
<ACTION>0</ACTION>
<FIELDKEY>PAYMENTMETHODCODE</FIELDKEY>
<DATATYPE>2</DATATYPE>
</ITEM>
</ITEMS>')
推荐答案
试试这个:
SELECT
ID,
NewValue = XItem.value('(NEWVALUE)[1]', 'varchar(50)')
FROM
T1
CROSS APPLY
XmlField.nodes('/ITEMS/ITEM') as XTbl(XItem)
WHERE
XItem.exist('FIELD[.="Payment method"]') = 1
这篇关于从 XML 字段中选择 XML 字段 = X的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:从 XML 字段中选择 XML 字段 = X
基础教程推荐
猜你喜欢
- MySQL 中的类型:BigInt(20) 与 Int(20) 2021-01-01
- 如何根据该 XML 中的值更新 SQL 中的 XML 2021-01-01
- 什么是 orradiag_<user>文件夹? 2022-01-01
- mysql选择动态行值作为列名,另一列作为值 2021-01-01
- 在 MySQL 中:如何将表名作为存储过程和/或函数参数传递? 2021-01-01
- 二进制文件到 SQL 数据库 Apache Camel 2021-01-01
- 如何在 SQL 中将 Float 转换为 Varchar 2021-01-01
- 表 './mysql/proc' 被标记为崩溃,应该修复 2022-01-01
- 在多列上分布任意行 2021-01-01
- oracle区分大小写的原因? 2021-01-01
