2015-11-04 6 views
1

Я пытаюсь создать выполняемый запрос DB, который получает часть имени с адреса электронной почты. Это то, что я до сих пор:Ошибка синтаксиса базы данных DB DB

substring("PUB"."NAME"."INTERNET-ADDRESS", 1, CHARINDEX('@', "PUB"."NAME"."INTERNET-ADDRESS")) as Name 

Однако я получаю ошибку синтаксиса вокруг CHARINDEX (...

Я не прогресс парень, и зная SQL просто достаточно, чтобы получить меня в неприятности ...

вы видите ошибку в моих отношениях у

+0

Можете ли вы поделиться весь запрос, пожалуйста? – Mureinik

+0

Я отключился и не могу вернуться ... =/Я был на удаленном сеансе с клиентом, чтобы сделать это. – DaBlue

+0

Я должен также упомянуть, что «pub». «Name». «Интернет-адрес» возвращается с результатами, как ожидалось, без подстроки ... – DaBlue

ответ

3

Попробуйте это:

подстроку ("PUB" "NAME" "ИНТЕРНЕТ-АДРЕС", 1, INSTR (.. "PUB". "NAME". "ИНТЕРНЕТ-АДРЕС", '@')).

Здесь у вас есть весь набор документации: https://community.progress.com/community_groups/openedge_general/w/openedgegeneral/1329.openedge-product-documentation-overview

+0

Почти работает ... Я сделал Подстрока («PUB». «ИМЯ». «ИНТЕРНЕТ-АДРЕС», 1, INSTR («PUB». «ИМЯ». «ИНТЕРНЕТ-АДРЕС», «@») -1), и запрос выполняется, но я получаю сообщение об ошибке HY000 Bad Arguments (7487) Если я удалю -1, я не получу ошибку, но она включает в себя «@». Странно, что я получаю ошибку, и она все еще работает, хотя ... – DaBlue

+0

Nevermind; это было потому, что была одна запись, у которой не было адреса. Спасибо, Дженс. – DaBlue

+0

Спасибо! Я думал, что CHARINDEX был в SQL-92, но INSTR сделал трюк! – Bret

Смежные вопросы