SELECT
REPLACE(
TRANSLATE(
LTRIM(
RTRIM('!! ATHEN !!','!')
, '!')
, 'AN'
, '**')
,'*'
,'TROUBLE')
FROM DUAL;
Это не работает на MySQL.
Будет возвращено одно постоянное значение.DUAL - это системная таблица с одной записью.Это позволяет вам выбрать постоянное значение, когда у вас нет таблицы для запроса, потому что двойное всегда есть.FROM DUAL может быть опущен в MySQL, он фактически добавлен в MySQL для большей совместимости с Oracle.
Что должен делать этот запрос:
- Он принимает текст '!!АФИНА !! '
- Это уравновешивает'! 'на обоих концах (ltrim и rtrim)
- Он 'переводит' A и N в
*
и *
. - Он заменяет каждый
*
на 'TROUBLE'
Так что я ожидаю, что результат будет что-то вроде 'TROUBLETHETROUBLE'.
То есть, когда вы запускаете его в Oracle.MySQL не примет второй параметр в RTRIM, как указала Nanne в комментариях.