【问题标题】:REPLACE function for replacing part of string in specific column用于替换特定列中部分字符串的 REPLACE 函数
【发布时间】:2019-08-06 07:38:19
【问题描述】:

我写了以下代码:

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', '');

这应该在 WHERE 语句的给定时间段内获取表 BMD_MI_OPS.DBH_TELEFONIE 的所有列。然后它应该擦除出现在列QUEUE_NAAM 中的每个_DVB。例如,VQ_PAR_EC_00_DVB 应变为 VQ_PAR_EC_00

我想我做错了什么,任何有关如何完成此操作的帮助将不胜感激。

提前致谢。

【问题讨论】:

    标签: sql teradata-sql-assistant


    【解决方案1】:

    您的语句没有链接,如果您想更新您的数据,您需要在您的UPDATE 中添加一个WHERE 子句

    例如:

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

    在更新之前选择行对更新没有影响,它只是一个SELECT

    【讨论】:

    • 那么应该把select函数放在哪里呢?
    • 为什么要SELECT?您将需要它来获得最终结果,所以不要在之前使用它。
    • 我运行了上面的代码,所以没有选择。它说它期望在 '=' 和 'REPLACE' 之间有一些东西
    • 这个问题来自您的默认查询。你的工作就是改变这个,只是不要忘记:UPDATE 子句用于更新数据,SELECT 子句用于获取结果。
    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多