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

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ć?

0

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

0

Napisz/użyj funkcji dzielącej string na wiersze, np takiej: https://www.mssqltips.com/sqlservertip/1665/sql-server-clr-and-sql-split-functions-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

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