【发布时间】:2021-06-16 19:08:15
【问题描述】:
我有一个使用 encoding="utf-16 使用 SQL 查询编码的 Swift 消息 - 我使用了以下代码:
CAST(REPLACE(CAST(Content AS VARCHAR(MAX)), 'encoding="utf-16"', '') AS XML) AS Content
我的 XML 结构的内容如下所示:
我想要达到的目标
我在这个结构中有一个包含多个 XML 文件的临时表,我正在尝试编写一个 SQL 查询,它将标准结构中的数据显示为一个表
SELECT
DateTimeCreated,
t.value('(ApplicationHeaderBlock_Output/MessageType/text())[1]', 'varchar(100)') AS MessageType,
e.value('(SequenceC/Date_C_98A/Date/text())[1]', 'DATE') AS XDTE,
e.value('(SequenceC/Date_C_98A//Date/text())[1]', 'DATE') AS RDTE
FROM
#MTFILE
CROSS APPLY
Content.nodes('//SWIFTHeader') AS a(t)
CROSS APPLY
Content.nodes('//SWIFT_CATEGORY5_MT566') AS b(e)
DROP TABLE #MTFILE
问题和我想要实现的目标
我不确定如何修改我当前的 SQL 查询以从 XML 文件中获得以下结果,因为当我尝试从 XML 文件中指定路径时,您可以看到它是相同的(来自屏幕截图结构)。
我的意思是实现并看到如下结果:
| XDTE | RDTE |
| -------- | -------------- |
| 20210310 | 20211012 |
如果有人可以请建议?
【问题讨论】:
-
不要使用图片来展示你的数据或代码。使用纯文本。
-
提取
Qualifier并通过Qualifier值旋转Date -
@Dijkgraaf - 嗯,你是什么意思?
-
@Serg 嗯,你能写一个简单的例子吗?不确定
-
@Dijkgraaf - Microsoft SQL
标签: sql sql-server xml tsql xquery