Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Фамилия И.О из строки (Oracle sql) / 17 сообщений из 17, страница 1 из 1
21.08.2019, 10:24
    #39851954
sk2
sk2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
Нужна помощь, есть длинная строка:



необходимы выбрать только ФИО, пропустив при этом дату и время, в таком виде: Иванов С.П.
То есть Фамилия И.О.
...
Рейтинг: 0 / 0
21.08.2019, 10:27
    #39851960
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
sk2необходимы выбратьЗависит от отношения к ошибкам.
...
Рейтинг: 0 / 0
21.08.2019, 10:30
    #39851964
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
...
Рейтинг: 0 / 0
21.08.2019, 10:33
    #39851967
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
Сир,
Студентам, желающим помощи
HOWTO :: Как правильно задавать вопросы

1) Полная постановка задачи (без сокращений)
2) Подготовьте тестовые данные, лучше в виде with
например (не ваш случай):

with tbl(col1,col2,col3) as (
select 1,'name1',to_date('11.02.1921','DD.MM.YYYY') from dual union all
select 2,'name2',to_date('11.02.1922','DD.MM.YYYY') from dual union all
)
select col2 from tbl...

2) Покажите что сделали,


3) используйте Тэги, читать код без них неудобно

p.s. Что хотите от таких фамилий (знаком лично):
Фернандес Перес Владимир Кастулович
Хосуэ Гонсалес Де Леон
...
Рейтинг: 0 / 0
21.08.2019, 10:35
    #39851969
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
Vadim LejninСир,
Студентам, желающим помощи
HOWTO :: Как правильно задавать вопросы

1) Полная постановка задачи (без сокращений)
2) Подготовьте тестовые данные, лучше в виде with
например (не ваш случай):

Код: plsql
1.
2.
3.
4.
5.
with tbl(col1,col2,col3) as (
select 1,'name1',to_date('11.02.1921','DD.MM.YYYY') from dual union all
select 2,'name2',to_date('11.02.1922','DD.MM.YYYY') from dual union all
)
select col2 from tbl...


2) Покажите что сделали,


3) используйте Тэги, читать код без них неудобно

p.s. Что хотите от таких фамилий (знаком лично):
Фернандес Перес Владимир Кастулович
Хосуэ Гонсалес Де Леон

Сам ТЭГи забыл поставить :)
...
Рейтинг: 0 / 0
21.08.2019, 11:03
    #39852001
Pharell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
sk2,

Добрый день! Мне кажется нужно использовать функцию SUBSTR. Я так понимаю кол-во символов с датой одинаково во всех записях.
...
Рейтинг: 0 / 0
21.08.2019, 11:04
    #39852002
Pharell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
Здесь как раз она описывается - https://oracleplsql.ru/mysql-function-substr.html
...
Рейтинг: 0 / 0
21.08.2019, 11:04
    #39852003
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
PharellЯ так понимаю кол-во символов с датой одинаково во всех записях.Оптимист или наивный?
...
Рейтинг: 0 / 0
21.08.2019, 11:06
    #39852005
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
PharellЗдесь как раз она описываетсяТам описывается нечто другое.
...
Рейтинг: 0 / 0
21.08.2019, 12:07
    #39852040
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
sk2в таком виде: Иванов С.П.


c С.П. есть нюансы

\'Бендер Остап Сулейман-Берта - Мария Ибрагимович\'

.....
stax
...
Рейтинг: 0 / 0
21.08.2019, 12:53
    #39852069
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
with q(val, rn) as (select '23/07/2019 17:15, ИВАНОВ Сергей Петрович', 1 from dual union all
select '23/07/2019 O7:15:41, Фернандес Перес Владимир Кастулович ',2 from dual union all
select '2/07/2019 о7:15, Николаев николай Николаевич',3 from dual union all
select '23/07/2019 17:10, Иванов Сергей',4 from dual union all
select '23/07/2019 17:19, Бендер Остап Сулейман-Берта - Мария Ибрагимович',5 from dual
)

select q.*
     , replace(
               listagg(
                       regexp_substr(val
                                     ,decode(
                                             level,1,'([[:alpha:]][[:alpha:]]*\s)','\s([[:alpha:]])[[:alpha:]*(\s|$)]'
                                             )
                                     ,1,level,null,1
                                     )
                       ,'.'
                       ) WITHIN GROUP (order by level)||'.'
               ,' .',' '
               )
from q
connect by regexp_count(val,'[[:alpha:]][[:alpha:]](\s|$)') >= level and prior rn = rn
and prior dbms_random.value is not null
group by rn, val
order by rn
...
Рейтинг: 0 / 0
21.08.2019, 13:30
    #39852101
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
DshedooСоловьев-Седой Василий Павлович
...
Рейтинг: 0 / 0
21.08.2019, 13:50
    #39852109
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
123ййDshedooСоловьев-Седой Василий Павлович

Код: plsql
1.
decode(level,1,'([[:alpha:]][[:alpha:]].*?\s)','\s([[:alpha:]])[[:alpha:]*?(\s|$)]')



В любом случае нельзя допилить "универсальный" вариант, не зная особенности заполнения поля.
Ещё дата может текстом прилететь, а я её в фамилию кину.
...
Рейтинг: 0 / 0
21.08.2019, 13:52
    #39852110
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
Бурухтан Второй Второй
...
Рейтинг: 0 / 0
21.08.2019, 17:41
    #39852295
sk2
sk2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
Pharellsk2,

Добрый день! Мне кажется нужно использовать функцию SUBSTR. Я так понимаю кол-во символов с датой одинаково во всех записях.
Совершенно верно, количество символов даты и времени всегда одинаково.
...
Рейтинг: 0 / 0
21.08.2019, 17:43
    #39852297
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
sk2Совершенно верно, количество символов даты и времени всегда одинаково.
Ну для неисправимых оптимистов можно и substr(str,19)
...
Рейтинг: 0 / 0
21.08.2019, 18:50
    #39852336
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фамилия И.О из строки (Oracle sql)
sk2,

поиском пользуйтесь - и увидите, насколько ваша тема баян,
вкупе с бендером и его фио
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Фамилия И.О из строки (Oracle sql) / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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