Я получил столбец Varchar
, который содержит XML. Я хотел бы преобразовать их в JSON, чтобы я провел быстрый тест.
Вот что сработало до сих пор:
DECLARE @xml XML
SET @XML = '<content>
<value>123456</value>
</content>'
SELECT
'{"foo":"' + b.value('(./value)[1]', 'VARCHAR(50)') + '"}'
FROM
@xml.nodes('/content') AS a(b)
Результат:
{"foo":"123456"}
Покатак хорошо, но это не делает половину работы, которая должна быть сделана.
- У меня много строк, и я хочу преобразовать все строки сразу.
- У меня естьнесколько значений внутри тега содержимого, и поэтому я не могу просто добавить префикс и суффикс json, поскольку внутри этого массива будет более одного идентификатора.
Я читал эту статью: https://docs.microsoft.com/en-us/sql/t-sql/xml/nodes-method-xml-data-type?view=sql-server-ver15, нотак как мой целевой столбец - VARCHAR
и должен быть приведен, это фактически не помогло мне ...
Итак, сначала я приведу значения к xml:
SELECT CAST(mytextField.TEXTVALUE AS XML) AS xmlData
FROM myDataTable
WHERE mytextFieldId = 12345
Thisвозвращает значения в виде XML:
<content><value>12345</value></content>
<content><value>9874</value></content>
<content><value>Foo</value><value>Bar</value></content>
Теперь я застрял.
- Как выбрать этот результат в новом запросе?
- Как лучше всего преобразовать его в формат json?
ВПервый фрагмент Я добавил префикс и суффикс к значению тега значения xmls. Как я могу сделать это с выбранными рядами бросков?