Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Запрос на поиск символа в троке / 5 сообщений из 5, страница 1 из 1
26.08.2007, 15:49
    #34753051
Gida
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на поиск символа в троке
Помогите с SQL запросом. Есть строка:
ABV 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 000 00

Необходимо выбрать те строки, в которых после букв DDD 17, 18, или 19 символ не равен нулю.
Получается, надо выбрать все строки начинающиеся с ABV, затем в них найти DDD,а за DDD стоящие по счету 17,18 или n...не равен 0.
...
Рейтинг: 0 / 0
27.08.2007, 10:09
    #34753628
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на поиск символа в троке
Уточните задачу, т.к. в 1-м и 2-м предложениях она разная.
...
Рейтинг: 0 / 0
27.08.2007, 10:54
    #34753777
Gida
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на поиск символа в троке
Есть строки:
ABV 11 11: 977 777 999 00 8 7 6 54 3232 SSS 777 8889 900 000 00
ABV 11 11: 977 667 949 10 8 7 6 54 3232 ADD 777 8889 700 004 00
GGG 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 000 00
ABV 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 000 00
ABV 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 001 20

Необзодимо чтобы в результирующее множество попали строки, начинающиеся с ABV, в которых были бы DDD,а за DDD стоящий по счету 17-ый и/или 19-ый и/или 20-ый символ не равен 0.
Таким образом должна попасть только 5 строка.
...
Рейтинг: 0 / 0
27.08.2007, 11:14
    #34753870
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на поиск символа в троке
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with t(v) as (
values
  ('ABV 11 11: 977 777 999 00 8 7 6 54 3232 SSS 777 8889 900 000 00')
, ('ABV 11 11: 977 667 949 10 8 7 6 54 3232 ADD 777 8889 700 004 00')
, ('GGG 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 000 00')
, ('ABV 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 000 00')
, ('ABV 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 001 20')
)
select substr(v, nullif(locate('DDD', v),  0 )+ 19 ,  4 ), v
from t
where v like 'ABV%'
and substr(v, nullif(locate('DDD', v),  0 )+ 19 ,  4 ) not like '0_00'
...
Рейтинг: 0 / 0
27.08.2007, 16:36
    #34755573
Gida
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на поиск символа в троке
Mark Barinstein
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with t(v) as (
values
  ('ABV 11 11: 977 777 999 00 8 7 6 54 3232 SSS 777 8889 900 000 00')
, ('ABV 11 11: 977 667 949 10 8 7 6 54 3232 ADD 777 8889 700 004 00')
, ('GGG 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 000 00')
, ('ABV 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 000 00')
, ('ABV 11 11: 977 777 999 00 8 7 6 54 3232 DDD 777 8889 900 001 20')
)
select substr(v, nullif(locate('DDD', v),  0 )+ 19 ,  4 ), v
from t
where v like 'ABV%'
and substr(v, nullif(locate('DDD', v),  0 )+ 19 ,  4 ) not like '0_00'


Большое спасибо, добрый человек :)
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Запрос на поиск символа в троке / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]