sql >> Databáze >  >> RDS >> Sqlserver

Jak rozdělit řetězec na serveru SQL Server 2008 pomocí uložené procedury a vložit data do tabulky

Obecně bych navrhoval napsat funkci CLR, která rozděluje řetězce podle regexu nebo funkce s hodnotou tabulky SQL, ale ve vašem případě můžete zkusit něco jednoduchého, jako je převod řetězce na xml a jeho analýza:

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)

ukázka sql houslí



  1. Modul Export výsledku async fn

  2. PŘIPOJIT (VYBRAT ... ) ue ON 1=1?

  3. primární klíč a cizí klíč

  4. Google Chart API využívá hodnotu data a času