Как заменить первые три символа строки в oracle - PullRequest
0 голосов
/ 28 ноября 2018

Как заменить первые три символа строки в oracle.Допустим, у меня есть 100 записей идентификатора сотрудника, мне нужно заменить первые три символа записей между 30 и 50 из 100.

  • Ввод: 111234,111235,111236,111237
  • Вывод: 222234,222235,222236,222237 (заменить и обновить)

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Предполагая, что вы хотите заменить первые 3 символа на abc для 30-й и 50-й строк (упорядоченных по некоторым критериям), затем:

SELECT CASE
       WHEN ROWNUM BETWEEN 30 AND 50
       THEN 'abc' + SUBSTR( your_column, 4 )
       ELSE your_column
       END AS replaced_value
FROM   (
  SELECT *
  FROM   your_table
  ORDER BY <some_criteria>
)
0 голосов
/ 28 ноября 2018

отметьте это:

    SELECT * FROM ns_words;

    mine
    mini
    mani
    nikhil
    sugandh
    mining

    SELECT regexp_replace(a,'(.{3}(.*)$)','abc\2') FROM NS_WORDS;
    abce
    abci
    abci
    abchil
    abcandh
    abcing

для вашего запроса, например:

SELECT regexp_replace(a,'(.{3}(.*)$)','abc\2') FROM NS_WORDS where col2 
between 30 and 50;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...