1

Как взять строку из строки в столбце с именем 'link' и изменить ее, добавив три буквы в определенную позицию индекса в строке.SQL Statement для UPDATE три символа в строке

Конкретный пример:

Я хочу, чтобы выбрать значение 'http://www.hello.no' и UPDATE оно с 'http://www-x1.hello.no' с помощью оператора (ов) SQL.
Допустим, что положение индекса, в котором начинается '-x1', всегда будет 10.

Это должно быть выполнено с использованием PostgreSQL. Но если вы можете захватить логику с помощью обобщенного оператора SQL, тогда отлично. :)

ответ

0

У Postgresql есть функция для замены с помощью шаблонов regexp_replace. Вы можете использовать эту функцию, как это:

UPDATE my_table 
SET link = regexp_replace(link, 'www', 'www-x1') 
WHERE <...> 

Конечно, вы можете сделать это с прямой манипуляцией строки тоже:

UPDATE my_table 
SET link = left(link, 10) || '-x1' || substring(link from 10) 
WHERE <...> 
0

Это то, что вы просите:

update the_table 
    set the_column = left(the_column, 10) || '-x1' || substring(the_column, 10); 

однако я не уверен, что это то, что вы хотите. Кажется, вы хотите вставить '-x1' перед первым ., который будет чем-то другим.