выберите только первые буквы слов от varchar поля

Меня спросили в интервью, вопросом от оракула sql.this, казалось, был простой вопрос, но у меня не было ключа к разгадке answer.could, которому кто-либо помогает?

если существует строка как "Нью-Йорк, красивый город" в colum.

select column_name from table_name;

закончится

newyork is a beautiful city

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

niabc
5
задан Vijay 1 February 2010 в 04:42
поделиться

4 ответа

Если вас не волнует поддержание случая вывода, это можно сделать без рекурсии:

SQL> select
  2      translate(
  3            initcap('newyork is a BEAUTIFUL city')
  4               , 'ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz'
  5               , 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  6              )
  7  from dual
  8  /

TRANS
-----
NIABC

SQL>

Если предложение содержит цифры, знаки препинания и т.д., то нам придется добавить эти символы в первую строку замены, что может стать довольно утомительным.

7
ответ дан 18 December 2019 в 10:44
поделиться

Ответ использует REGEX_SUBSTR .

Смотрите документы здесь , И близкий пример здесь .

6
ответ дан 18 December 2019 в 10:44
поделиться

Может быть, это включает с использованием функции Substr ?

1
ответ дан 18 December 2019 в 10:44
поделиться

Вы можете использовать описанную описанную функцию (заменяя запятую пространство), чтобы разделить предложение по его пробелам. Затем вы можете использовать функцию Substr, поскольку AJ говорит, потому что результат разделения позволит вам начать от CHAR 1 для CHAR 2 каждого «штука».

Это связано с субстрами, верно ??

PS. Я предпочел бы обработать результат в слое выше, а не во время запроса. Но это я.

2
ответ дан 18 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: