sql >> Database teknologi >  >> RDS >> Sqlserver

I SQL Server, hvad er den bedste måde at afgøre, om en given streng er en gyldig XML eller ej?

Måske er det ikke nødvendigt at tjekke for gyldig XML. Du kan tjekke for tilstedeværelsen af ​​den relevante xml tag med charindex i en case-sætning og udtræk fejlmeddelelsen ved hjælp af substring .

Her er et eksempel med en forenklet XML-streng, men jeg tror, ​​du forstår ideen.

declare @T table(ID int, Col1 nvarchar(1000))

insert into @T values
(1, 'No xml value 1'),
(2, 'No xml value 2'),
(3, '<root><item>Text value in xml</item></root>')

select
  case when charindex('<item>', Col1) = 0
  then Col1
  else
    substring(Col1, charindex('<item>', Col1)+6, charindex('</item>', Col1)-charindex('<item>', Col1)-6)
  end  
from @T

Resultat:

No xml value 1
No xml value 2
Text value in xml


  1. Bedste måde at oprette et SPARQL-slutpunkt for en RDBMS (MySQL-database)

  2. Hvilke ressourcer findes der til justering af databasens ydeevne?

  3. SQL for at kontrollere, om databasen er tom (ingen tabeller)

  4. Træk sekunder fra en dato-tidsværdi i MariaDB