SQL - Rozdzielenie linii kiedy występuje enter w jednej komórce

Odpowiedz Nowy wątek
2017-06-06 08:03
13adam11
0

sytuacja wygląda tak:

nr wiersza wartość produkt
1 3000 S1
S2
S3

To co powyżej znajduje się w jednym wierszu, chcialbym aby po ingerencji wyglądało to tak:

1 3000 S1
1 3000 S2
1 3000 S3

Macie pomysły jak to zrobić?

Pozostało 580 znaków

2017-06-06 08:04
13adam11
0

W przykładzie S2 i S3 jest pod S1 wprowadzone z enterami (char(13))

Pozostało 580 znaków

2017-06-06 08:39
0

Napisz/użyj funkcji dzielącej string na wiersze, np takiej: https://www.mssqltips.com/sql[...]-to-parse-a-delimited-string/

i użyj do wyciagniecia interesujących cię danych:

select '1 3000 S1'+char(13)+'S2'+char(13)+'S3' as kol into #tmp

select 
    left(kol,charindex(' ',kol)-1) [nr wiersza],
    substring(kol,charindex(' ',kol)+1,charindex(' ',kol,charindex(' ',kol)+1)-charindex(' ',kol)) [wartosc],
    case when charindex(' ',string)>0 then
        right(string,charindex(' ',reverse(string))-1)
    else
        string
    end produkt
 from #tmp
cross apply [dbo].[fnParseStringTSQL](kol,char(13)) dt

drop table #tmp

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0