从MS-SQL Server 2008中的XML字段中提取值
技术问答
55 人阅读
|
0 人回复
|
2023-09-12
|
我试图单独存储XML字段中的MS-SQL Server
+ s# i# C ]1 C从2008年数据库中提取四段信息。这是我第一次必须使用它XML,所以我遇到了一些麻烦,这就是为什么我只需要提取数据。我试图用其他帖子来解决我的问题,但显然我没有运气。
/ @! P9 a/ q+ l7 P1 C这四个信息首先是项目经理,然后是价值,其次是利润中心,然后是价值。来自利润中心的值将用于连接两个表。以下是存储在这个字段中的XML数据示例。! x. E0 ~, E9 |
Project Manager DBD Profit Center 211 因此,在这个例子中,我需要使用 Profit Center 211值将两个表全部连接起来MS-SQL查询中。信息表可称为1 o8 j3 E) c. [6 _
tblProfitCenter保存该信息的字段为 prftData”。
. _3 S9 l+ W% U* M如果 prftData数据不是XML格式是包含利润中心的常规整数字段ID并执行联系,将执行同样的工作。
9 O$ |; o" v7 G6 P1 j8 l SELECT md.LName,md.FName,pc.ProfitCenterName FROM tblMainDataCenter md LEFT OUTER JOIN tblProfitCenter pc ON md.pcID = pc.prftData这是我从事的项目,需要超出这个范围。通常,我会学习XML解决这个问题,但时间不允许。没有机会学习XML以前,我将不胜感激。
+ p( J+ t* k) Q" H/ V. \6 [6 r 8 j, n+ j7 }! h2 e0 n- e' k
解决方案: * ?- C3 d5 s: m
您可以使用valueXML列出的函数从XML提取数据如下:
- m( C. r1 q. Q! _8 F# lSELECT col.value('(/ArrayOfEntityPropertyOfString/EntityPropertyOfString[Name="rofit Center"]/Value)[1]','int')FROM tbl假设你的手表已经命名了tbl,而XML列已命名col。: I% _, i. _. Q
第一个参数是XPath 1表达式,第二个参数是目标数据类型。请注意,这些字符串必须是SQL
% n$ f0 \ E d+ { s5 `9 F$ ^Server固定字符串,不能动态生成(例如,通过字符串联)。 |
|
|
|
|
|