Pytanie Szukanie w tekście

Odpowiedz Nowy wątek
2018-11-19 22:07

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

0

Witam,

Jestem nowy na forum i z sql też miałem małą styczność. Sprawa wygląda tak.
Posiadam Tabelę w której w jednej kolumnie jednym polu jest wpisywane np:
Nadanie 123452
Odbiór 123452
Brak dysku (nie zawsze jest wpisywane)

Potrzebuję z tego pola wyciągnąć liczbę, która znajduję się po słowie odbiór "123452",liczbę po słowie nadanie "123452" oraz wszystko po słowie brak ' dysku.... Natomiast jeśli nie będzie wpisane nic po słowie odbiór, żeby było napisane NULL

Próbowałem zapytaniem :
SUBSTRING(tabela.kolumna, CHARINDEX(' ',tabela.kolumna,,36),20) as BRAK, - wypisuje po spacji, lecz jesli nie mamy wpisu brak wyświetla pierwsze 20 znaków z wiersza
SUBSTRING(tabela.kolumna, PATINDEX('%____ÓR%',tabela.kolumna),10) AS odbior, - wypisuje lecz ze słowem odbiór

Pozostało 580 znaków

2018-11-19 22:27
Moderator Kariera

Rejestracja: 2 lata temu

Ostatnio: 2 minuty temu

Lokalizacja: Poznań

0

A czy nie prościej to będzie Ci pobrać całą komórkę z sql, a potem ją sobie analizować i rozdzielać na elementy już w aplikacji?


Naczelny forumowy hejter Apple

That game of life is hard to play, I'm gonna lose it anyway
The losing card I'll someday lay, So this is all I have to say

Pozostało 580 znaków

2018-11-19 22:30

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

0

Niestety nie, gdyż z całego zapytania jest tworzony raport. To jest wycinek całego skryptu.

Pozostało 580 znaków

2018-11-19 22:33

Rejestracja: 17 lat temu

Ostatnio: 2 godziny temu

0

jaki silnik sql 2017?

Pozostało 580 znaków

2018-11-19 22:46

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

0

sql 2012

Pozostało 580 znaków

2018-11-19 22:53

Rejestracja: 17 lat temu

Ostatnio: 2 godziny temu

0

W tym polu dane są w ciągu czy masz tam złamanie linii?

Pozostało 580 znaków

2018-11-19 23:12

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

0

Sa oddzielone spacjami np. nadanie 123456 odbiór 123456

podaj kilka przykładów z zawartością pól i jaki dla tych pól ma być wynik (co może występować po brak dysku, też ciąg cyfr?) - dbuser 2018-11-20 10:32

Pozostało 580 znaków

2018-11-20 11:23

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

0

Temat uwazam za zamknięty.

Pozostało 580 znaków

2018-11-20 11:32
Moderator Kariera

Rejestracja: 2 lata temu

Ostatnio: 2 minuty temu

Lokalizacja: Poznań

0

@hejda52: pytanie - czy znalazłeś rozwiązanie, czy temat "olałeś"? Bo jeśli masz rozwiązanie problemu to fajnie by było, żebyś się nim podzielił tutaj, może komuś się przyda w przyszłości.


Naczelny forumowy hejter Apple

That game of life is hard to play, I'm gonna lose it anyway
The losing card I'll someday lay, So this is all I have to say

Pozostało 580 znaków

2018-11-20 16:00

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

1

Znalazłem rozwiązanie metodą prób i błędów.
Oto rozwiązanie.
IMG_20181119_231514.jpg

A czy możesz wkleić tutaj całe zapytanie jako kod a nie obrazek? W ten sposób wyszukiwarki będą mogły je poprawnie zaindeksować i są większe szanse, że ktoś szukający w google odpowiedzi trafi na ten wątek. - cerrato 2018-11-20 16:02

Pozostało 580 znaków

2018-11-20 17:43

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

2

przepisałem na szybko rozwiązanie, analogicznie zakładamy 'nadanie'

DECLARE @TEMPLATE1 nvarchar(50) = 'ODBIÓR'

case CHARINDEX(@TEMPLATE1,[KOLUMNA])
WHEN 0
THEN NULL
ELSE SUBSTRING ( [KOLUMNA], CHARINDEX (@TEMPLATE1, [KOLUMNA]) +LEN (@TEMPLATE1) +1,CHARINDEX (@TEMPLATE1, [KOLUMNA] ) +6)
END AS 'NUMER_ODBIORU'

edytowany 1x, ostatnio: hejda52, 2018-11-20 17:44

Pozostało 580 znaków

Odpowiedz

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