Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Подскажите как в запросе написать  [new]
виндузник
Guest
Есть столбец name где имеются данный типа "Иванов Иван Иваныч 1956 г.", необходимо вывести в таком формате "Иванов И.И."
19 ноя 10, 08:00    [9805695]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
SQLap
Member [заблокирован]

Откуда:
Сообщений: 34063
виндузник,

в поиск
19 ноя 10, 08:03    [9805698]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
-2-
Member

Откуда:
Сообщений: 15330
set serveroutput on
declare
   subtype "Иванов Иван Иваныч 1956 г." is date;
   чел "Иванов Иван Иваныч 1956 г." := sysdate;
begin
   dbms_output.put_line(to_char(чел,'"Иванов И.И."'));
end;
/
anonymous block completed
Иванов И.И.
19 ноя 10, 08:22    [9805720]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
виндузник
Guest
-2-,

Не смешно!
19 ноя 10, 08:36    [9805744]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
виндузник
Guest
SQLap,
Нашел что искал.
Спасибо!
19 ноя 10, 08:45    [9805775]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
hexcept
Member

Откуда:
Сообщений: 237
with u as
(
 select 'Иванов-Петров Иван Иваныч 1956 г.' fio from dual union all
 select 'Иванов Иван Иваныч' fio from dual union all
 select 'Иванов-Петров Иван' fio from dual union all
 select '         Иванов' fio from dual union all
 select '  Иванов 1956 г.' fio from dual union all
 select 'ИВАНОВ-петров Иван Иваныч 1900 г. бла-бла-бла' fio from dual union all
 select 'Иванов Иван 1956 г.' fio from dual
)
select
 replace(regexp_substr(fio,'(\w|-)+',1,1)||' '||
 regexp_replace(substr(regexp_replace(
  fio,'\W*(\w|-|$)(\w|-)*','\1.'),3,4),'(\.|\d|[[:lower:]])+$','.'),' .')
from u
19 ноя 10, 09:46    [9806023]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
виндузник
-2-,

Не смешно!


Спорно. :)

hexcept,

И меня похоронят, Киса, пышно, с  оркестром,  с  речами,  и  на
памятнике моем будет высечено: "Здесь лежит известный
теплотехник и истребитель Остап-Сулейман-Берта-Мария
Бендер-бей
, отец которого был турецко-подданным и умер, не
оставив сыну своему Остапу-Сулейману ни малейшего наследства.
Мать покойного была графиней и жила нетрудовыми доходами".

(с)
19 ноя 10, 18:36    [9810494]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
hexcept
Member

Откуда:
Сообщений: 237
2 suPPLer
Как раз с Остапом-то (кто бы сомневался, что непременно напомнишь?) более-менее:
with u as
(
 select
  'Остап-Сулейман-Берта-Мария Бендер-бей,  отец  которого  был  турецко-подданным' fio
 from dual
)
select
 replace(regexp_substr(fio,'(\w|-)+',1,1)||' '||
 regexp_replace(substr(regexp_replace(
  fio,'\W*(\w|-|$)(\w|-)*','\1.'),3,4),'(\.|\d|[[:lower:]])+$','.'),' .')
from u
Хуже с ибн Синой, Абу Бакир аль Хорезми и прочими Д'Артаньянами :-)
Да и автор вряд ли рассчитывал получить рецепт средства Макропулос с помощью SQL
22 ноя 10, 09:31    [9816685]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как в запросе написать  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
hexcept
2 suPPLer
Как раз с Остапом-то (кто бы сомневался, что непременно напомнишь?) более-менее


От фамилии осталось только Б. Но даже поменяв местами, мы только О. увидим с Вами.

А ещё есть Джоны, Джоаны и Джеромы...
22 ноя 10, 12:44    [9818091]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить