sql-server - SQL Server 查询解释 - 逗号分隔值到单独的行
问题描述
我找到了如何从一行中获取值的好方法,这些值用逗号分隔成单独的行:
SELECT
q2.value
FROM
(SELECT
CAST('<x>' + REPLACE(Data, ',', '</x><x>') + '</x>' AS XML) AS thexml
FROM
MyTable) q1
CROSS APPLY
(SELECT
x.value('.', 'VARCHAR(100)') AS value
FROM
thexml.nodes('x') AS f(x)) q2
但是有一些令人困惑的部分,希望有人可以解释一下:
(SELECT
x.value('.', 'VARCHAR(100)') AS value
FROM
thexml.nodes('x') AS f(x)) q2
解决方案
再会,
您提到的查询部分(SELECT x.value('.','varchar(100)') as value FROM thexml.nodes('x') as f(x)) q2
基于 xml 数据类型方法。
这部分x.value('.','varchar(100)')
查询基于 XML 数据类型的方法 value()(您可以在此处阅读更多内容),并使用 XQuery 表达式来检索 XML 实例中的数据。
这部分thexml.nodes('x')
使用了xml的值,并在内部使用方法nodes()进行解析。您可以在此文档中阅读更多内容。
推荐阅读
- java - 如何用arrayList中的字符串替换重复元素?
- c# - 使用 Ajax 过滤模型更新 foreach 循环中的表(asp.net mvc c#)
- java - Jsoup 在该行显示所有 text()
- components - 在哪里可以找到 Blazor 默认包含的组件列表?
- javascript - 未捕获的 TypeError:x.replace 不是函数。在此更改之前没有得到
- pandas - 根据条件 pandas 过滤数据框
- css - React 组件的样式不适用于 Heroku
- google-cloud-platform - 有没有办法在 Google Natural Language API 情感分析中明确设置句子的开头和结尾?
- python - 将 EPSG:3857(“web 墨卡托”)中散景中瓷砖提供者的投影更改为我在 EPSG:4326 中的来源
- python - Python 请求库中的分块编码消息