Подстроки в Oracle SQL - PullRequest
       9

Подстроки в Oracle SQL

0 голосов
/ 15 октября 2018

Я относительно новичок в Oracle SQL и мне интересно, сможет ли кто-нибудь мне помочь.

Я пытаюсь вернуть первые 50 строк из столбца History моего EmployeeТаблица.Я пытаюсь вернуть случаи, когда «desk» находится в history после первого использования «on».

Заранее спасибо.

SELECT SUBSTR(History, INSTR(History, ' on ') + 3) AS subject
FROM Employee
WHERE subject LIKE '%desk%'
AND ROWNUM <= 50;

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Просто используйте LIKE:

SELECT SUBSTR(History, INSTR(History, ' on ') + 3) AS subject
FROM Employee
WHERE subject LIKE '%on%desk%' AND ROWNUM <= 50;

Я думаю, LIKE предпочтительнее регулярных выражений только потому, что оно должно быть немного быстрее.

0 голосов
/ 15 октября 2018

Для таких более сложных подобных условий вы можете использовать REGEXP_LIKE, в котором используются регулярные выражения:

SELECT SUBSTR(History, INSTR(History, ' on ') + 3) AS subject
  FROM Employee
 WHERE subject LIKE '%desk%'
   AND REGEXP_LIKE(History, '.*\son\s.*desk.*')
   AND ROWNUM <= 50

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...