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

Hvordan man deler en streng i sql server 2008 ved hjælp af lagret procedure og indsætter dataene i tabellen

Generelt vil jeg foreslå at skrive en CLR-funktion, som opdeler strenge efter regex eller SQL-tabel-værdi-funktion, men i dit tilfælde kan du prøve noget simpelt som at konvertere din streng til xml og parse 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 violindemo



  1. Sådan vælger du sammenligning af to kolonner som én kolonne i Oracle

  2. Brug af Oracle JDeveloper 12c med Oracle Database, del 2

  3. Store_result og get_result for statement

  4. Tjek om dette er duplikat