2012-06-21 3 views
1

У меня есть интересный сценарий для добавления - (minus sign) между цифрами, алфавитами и цифрами.SQL для добавления '-' между номерами-цифрами-цифрами

Пример:

Входной сигнал: 123AB56; Выход: 123-AB-56;

Вход: 56XYZ777; Выход: 56-XYZ-777;

Для исходных данных нет регулярного шаблона.

Любые входы на это оцениваются.

+0

Вы должны попробовать что-то спросите на вопрос, когда у вас есть проблемы. 'Мы считаем, что у лучших вопросов переполнения стека есть немного исходного кода в них, но если ваш вопрос обычно охватывает ...' См. Http://stackoverflow.com/faq –

+0

Не очень легко при любом выпуске Teradata до 14. Вы будете нужен UDF, чтобы сделать это эффективно. С Teradata 14 используйте поддержку собственных регулярных выражений. –

ответ

3

Если это относительно позже Oracle, есть regexp_replace для такого рода задач:

SELECT 
    REGEXP_REPLACE(YOURFIELD, 
       '([[:digit:]]+)([[:alpha:]]+)([[:digit:]]+)', 
       '\1-\2-\3') REPLACED_RESULTS 
    FROM YOURTABLE; 
Смежные вопросы