【发布时间】:2021-05-07 04:15:17
【问题描述】:
使用以下 XML。
<TEMPLATE>
<TEMPLATE_FIELD prompt="TEST_ONE" data_type="8" tag="TEST_ONE" required="0" is_radio="0" default_value="" SQL="SELECT * FROM DBO.SOME_NEW_TEST" />
<TEMPLATE_FIELD prompt="TEST_TWO" data_type="8" tag="TEST_TWO" required="0" is_radio="0" default_value="" SQL="SELECT * FROM DBO.SOME_NEW_TEST" />
<TEMPLATE_FIELD prompt="TEST_THREE" data_type="8" tag="TEST_THREE" required="0" is_radio="0" default_value="" SQL="SELECT * FROM DBO.SOME_NEW_TEST" />
我正在尝试获取以下内容 - 或类似的内容,以便我可以有效地阅读这些字段。
我尝试了其他几个问题,发现这个问题的第三个答案很有希望https://stackoverflow.com/a/15349737/8715626 --因为我希望能够在 SQL 中进行解析,而不是使用外部语言或创建文件。如果创建文件更容易,请随时分享。我已经尝试了下面代码的几种变体,我得到的是“空白”或 NULL。
declare @xml as xml
set @xml = (SELECT xml_field from fooXMLtable)
select @xml
;with cte as (
select @xml xmlstring
)
SELECT
xmlstring.value('(/TEMPLATE//TEMPLATE_FIELD/prompt/node())[3]','VARCHAR(max)')
as prompt
【问题讨论】:
-
在提出问题时,您需要提供一个可重现的最小示例。请参考以下链接:stackoverflow.com/help/minimal-reproducible-example 请提供以下内容: (1) DDL 和样本数据填充,即 CREATE table(s) 加上 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上面#1 中的样本数据。 (4) 你的 SQL Server 版本 (SELECT @@version;)
-
Nahuatl_C137,您显然没有阅读您接受为答案的解决方案的评论。
标签: sql sql-server xml xquery