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

Lagret procedure til at parse en streng

En mulig løsning er at bruge XML

DECLARE @text VARCHAR(1000) 
        ,@xml xml

SELECT @text = 'City=Hyderabad | Mobile=48629387429 | Role=User | Name =Praveen'

SELECT @text = REPLACE(@text,'|','"')
    ,@text = REPLACE(@text,'=','="')
    ,@text = '<row ' + @text + '"/>'

SELECT @xml = CAST(@text AS XML)

select 
    line.col.value('@Name[1]', 'varchar(100)') AS Name
    ,line.col.value('@City[1]', 'varchar(100)') AS City
    ,line.col.value('@Mobile[1]', 'varchar(100)') AS Mobile 
    ,line.col.value('@Role[1]', 'varchar(100)') AS Role 
FROM @xml.nodes('/row') AS line(col)


  1. hvordan man optimerer denne forespørgsel (4 mm tabeller involveret)

  2. SQL:Kan jeg henvise/få adgang til data i den aktuelle række i en vinduesfunktion?

  3. Sådan rettes en langsom implicit forespørgsel på pg_attribute-tabellen i Rails

  4. Tilføj en tidszoneforskydning til en datetime2-værdi i SQL Server (T-SQL)