Oracle sql функция вопрос - PullRequest
0 голосов
/ 21 июня 2010

Как отобразить информацию о сотруднике, имя которого содержит одинаковые символы в начальной и конечной позиции его имени?

1 Ответ

3 голосов
/ 21 июня 2010

Есть два способа сделать это, используя SUBSTR () для идентификации части ENAME.Более ортодоксальный подход работает на основе того, что передача отрицательного значения в качестве смещения считается от end строки:

SQL> select ename
  2  from emp
  3  where substr(ename,1,1) = substr(ename,-1,1)
  4  /

ENAME
----------
TROMBONIST

SQL>

Только для ухмылок, я включаю второй подход, который используетнедокументированная функция REVERSE ():

SQL> select ename, reverse(ename)
  2  from emp
  3  where substr(ename,1,1) = substr(reverse(ename),1,1)
  4  /

ENAME      REVERSE(EN
---------- ----------
TROMBONIST TSINOBMORT

SQL>

В 10g и выше мы также можем решить эту проблему с помощью регулярных выражений:

SQL> select ename
  2  from emp
  3  where regexp_substr(ename,'^.') = regexp_substr(ename,'.$')
  4  /

ENAME
----------
TROMBONIST

SQL>
...