Funkcje tekstowe MS SQL - problem z listą form płatności

Odpowiedz Nowy wątek
2019-08-13 09:03
0

Cześć,

Mam spory problem z ogarnięciem zapytania z listą form płatności z mojej bazy - formatowanie danych jest tam bardzo dziwne + są pewne dane dokładane.

Moje zapytanie wygląda trywialnie: SELECT Lp, Forma FROM Tabela WHERE Typ=1

Otrzymuję tabelę wyników, którą zamieszczam zarówno jako screen z bazy, screen z danymi z excela a także dane wyciągnięte do excela oraz csv.

Próbowałem tu stosować substringi, ltrimy, charindeksy ale dalej nie potrafię zbudować zapytania, które wyciągnie mi oczekiwaną listę.

Z tego co widzę to wcięcia od lewej wystepują tylko przy tych formach, które mają w Lp w cyfrze jedności coś innego niż 0.
W excelu w kolumnie "Wartosć źródłowa" można zobaczyć, że na końcu (za ostanim znakiem w każym wierszu) dołożone jest n-spacji.
Co jest również istotne to pierwsza niechciana liczba pojawia się od 21 znaku. Czyli forma płatności jest wśród 20 pierwszych znaków i zapytanie powinno pmojać lewe spacje i brać wszystko do 20 znaku włącznie ucinając spacje z prawej - przerasta to niestety moje nikłe umiejętności budowania zapytań na funkcjach tekstowych.

Jeżeli ktoś wie jak to obejść to prośba o pomoc.

edytowany 3x, ostatnio: nalendil, 2019-08-13 09:08

Pozostało 580 znaków

2019-08-13 09:16
0

Ta 20 mnie olśniła - RTRIM(LTRIM(SUBSTRING (Forma, 0, 20))) zadziałało. Wątek do zamknięcia.

Pozostało 580 znaków

2019-08-13 09:17
1

w kolumnie forma masz wrzuconą tabelkę ze stałą szerokością kolumny, tak więc wystarczy substring, ltrim i rtrim:

select lp, forma [Wartość źródłowa], ltrim(rtrim(substring(forma, 1, 20))) [Wartość docelowa] from tabela

pozdrawiam
paweld

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