CVS (ciąg znaków podzielony separatorem) wciśnięty w jedną kolumnę rozkładam na kolumny na MS SQL Serwerze



Działamy na MS SQL Serwerze. Jedna kolumna, a w niej ciąg znaków,  wartości rozdzielone średnikami. Ewidentnie CVS wrzucony do tabeli i tyle, ale w jedną kolumnę. I jak to rozłożyć do osobnych kolumn. Można wyeksportować do pliku, otworzyć  przy pomocy EXCEL, zapisać już jako plik  w formacie EXCEL i importować na Server. Jak bez EXCELA to zrobić. Chcesz się dowiedzieć jak ja to zrobiłem?
Na MS SQL Serverze nie ma tak jak na ORACLE funkcji INSTR, która pozwala namierzyć zadane/konkretne wystąpienie znaku i następie ciąć przy pomocy SUBSTRING.
Co wykorzystałem:
ROW_NUMBER () over ( order by …)
CHARINDEX (.... , …. , …)
SUBSTRING
RTRIM
I klauzule WITH i możliwość uzyskania przy jej pomocy rekurencji.
Oczywiście jeszcze jakiś WIDOK, zapisywałem dane nie na ekran ale przy pomocy klauzuli INTO do tabelki, robiłem złączenia, podzapytania… Prezentacja w całości pokazująca rozwiązanie, kod SQL to wszystko jest dostępne do przeczytania i do poćwiczenia. 

https://drive.google.com/drive/folders/0B0DNBH1DOPAfbVdZckUyRF9TekU?usp=sharing






Brak komentarzy:

Prześlij komentarz