#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
предложение для получения результата.