sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man delar en sträng i sql server 2008 med hjälp av lagrad procedur och infogar data i tabellen

I allmänhet skulle jag föreslå att du skriver en CLR-funktion som delar strängar med regex eller SQL-tabellvärderade funktioner, men i ditt fall kan du prova något enkelt som att konvertera din sträng till xml och analysera den:

declare @str nvarchar(max) = 'date=10/10/2000|age=13^date=01/01/2001|age=12^date=02/02/2005|age=8'
declare @data xml

select @str = replace(@str, '=', '="')
select @str = replace(@str, '|', '" ')
select @str = replace(@str, '^', '"/><row ')
select @str = '<row ' + @str + '"/>'

select @data = cast(@str as xml)

select
    t.c.value('@date', 'nvarchar(max)') as [date],
    t.c.value('@age', 'nvarchar(max)') as [age]
from @data.nodes('row') as t(c)

sql fioldemo



  1. mysqltuner.pl på en Windows 2008 server r2

  2. Hur infogar man en post och returnerar det nyskapade ID:t med ett enda SqlCommand?

  3. Skapa en Postgres-databas med python

  4. Hibernate Långsam för att få Postgres-anslutning