У меня есть поле типа данных , называемое XMLText, в SQL Server 2012
. Я хотел бы удалить все поля SageID
. Так что это длинная строка поле содержит что-то, что выглядит следующим образом:Удалить строку из столбца SQL
<pair n="priorinstitution2" v="Yale School of Medicine" />
<pair n="priorinstitution3" v="" />
<pair n="sageid" v="20668528" />
<pair n="priorinstitution1" v="University of Chicago" />
То, что я хотел бы сделать, это удалить все для SageID
тега, так что конечный результат:
<pair n="priorinstitution2" v="Yale School of Medicine" />
<pair n="priorinstitution3" v="" />
<pair n="priorinstitution1" v="University of Chicago" />
Очевидно, он не находится в фиксированном положении в поле, а v = может быть любым числом или длиной. Что такое манипуляция с строкой SQL для этого?
Один метод использовать рекурсивный CTE с PATINDEX() и STUFF(), чтобы удалить все вхождения. – Rabbit
В вашем столбце SQL содержится одно появление 'sageid' или несколько строк в строке? ** [Демо] (https://data.stackexchange.com/stackoverflow/query/421226) ** – lad2025
@Rabbit Вы можете использовать STUFF для удаления фрагментов строки? –