Функция REPLACE для замены части строки в определенном столбце

#sql #teradata-sql-assistant

#sql #teradata-sql-assistant

Вопрос:

Я написал следующий код:

 SELECT * 
FROM BMD_MI_OPS.DBH_TELEFONIE
WHERE cast(DATUM_TIJD as date) BETWEEN 1180212 AND 1180217;

UPDATE BMD_MI_OPS.DBH_TELEFONIE 
SET QUEUE_NAAM = REPLACE(QUEUE_NAAM, '_DVB', '');
  

Это должно занять все столбцы таблицы BMD_MI_OPS.DBH_TELEFONIE за указанный период в операторе WHERE. Затем он должен удалить все _DVB, которые появляются в столбце QUEUE_NAAM . Например, VQ_PAR_EC_00_DVB должно стать VQ_PAR_EC_00 .

Я предполагаю, что я делаю что-то неправильно, любая помощь о том, как это сделать, была бы оценена.

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

Ответ №1:

Ваши инструкции не связаны, если вы хотите обновить свои данные, вам нужно добавить WHERE предложение в свой UPDATE

Например :

 UPDATE BMD_MI_OPS.DBH_TELEFONIE 
SET QUEUE_NAAM = REPLACE(QUEUE_NAAM, '_DVB', '')
WHERE CAST(DATUM_TIJD AS DATE) BETWEEN 1180212 AND 1180217;
  

Выбор строк перед вашим обновлением не влияет на ваше обновление, это просто SELECT

Комментарии:

1. Итак, куда я должен поместить функцию select?

2. Зачем вам нужен SELECT ? Она понадобится вам для получения конечного результата, поэтому используйте ее после, а не до.

3. Я запустил приведенный выше код, поэтому без выбора. В нем говорится, что ожидается что-то среднее между ‘=’ и ‘REPLACE’

4. Эта проблема возникает из вашего запроса по умолчанию. Ваша задача изменить это, только не забудьте: UPDATE предложение для обновления данных и SELECT предложение для получения результата.