У меня есть одно поле в БД, которое содержит столбцы данных, но в непрерывной строке XML. Я хочу извлечь данные из XML и вернуться как обычные столбцы. В этом одиночном поле может быть несколько строк данных.XML Data in Row Selection
Вот 2 реальные примеры данных в этой области
Пример 1:
<DocumentElement>
<AuditTrailDetail>
<TableName>order_header_total</TableName>
<RowID>837</RowID>
<AuditType>Edit</AuditType>
<FieldName>oht_foreign_net</FieldName>
<ValueFrom>65.1600</ValueFrom>
<ValueTo>115.1600</ValueTo>
<EntityName />
<DisplayName />
<Identifier />
</AuditTrailDetail>
<AuditTrailDetail>
<TableName>order_line_item</TableName>
<RowID>2442</RowID>
<AuditType>Edit</AuditType>
<FieldName>oli_qty_required</FieldName>
<ValueFrom>1.0000</ValueFrom>
<ValueTo>2.0000</ValueTo>
<EntityName />
<DisplayName />
<Identifier>61 - test</Identifier>
</AuditTrailDetail>
</DocumentElement>
Пример 2:
<DocumentElement>
<AuditTrailDetail>
<TableName>order_line_item</TableName>
<RowID>2446</RowID>
<AuditType>Edit</AuditType>
<FieldName>oli_description</FieldName>
<ValueFrom>2 Ply Tissue Masks</ValueFrom>
<ValueTo>2 Ply Tissue Masksdd</ValueTo>
<EntityName />
<DisplayName />
<Identifier>D/D170 - 2 Ply Tissue Masksdd</Identifier>
</AuditTrailDetail>
</DocumentElement>
Для примера 1, Я хотел бы вернуть 2 строки как указано ниже:
В примере 2 имеется одна строка, и я хотел бы его, как показано ниже:
Поля в таблице:
owat_id
owat_audit_type
owat_record_id
owat_record_type
owat_datetime
owat_ud_id
owat_details
данные XML, находится в пределах owat_details
.
Предположим, что имя таблицы Audit_Trail
.
Как это сделать непосредственно в SQL-запросе?
Вы знакомы с XQuery? http://www.w3schools.com/xquery/xquery_example.asp –
Совсем нет. Вероятно, я должен был упомянуть, что это должно быть сделано полностью в SQL-запросе. – OWSam
XQuery используется в вашем запросе sql :) https://technet.microsoft.com/en-us/library/ms345122(v=sql.90).aspx –