尝试更新时Teradata中没有更多假脱机空间,请选择“带大小写”

尝试更新时Teradata中没有更多假脱机空间,请选择“带大小写”,teradata,teradata-sql-assistant,Teradata,Teradata Sql Assistant,我正在尝试更新一个包含多达388.000行的表 以下是查询: UPDATE DL_RG_ANALYTICS.SH_HISTORICO FROM ( SELECT TIPO_MORA, CASE TRAMOMORA WHEN '0' THEN 'VIGENTE' WHEN '1' THEN 'MORA BLANDA' WHEN '2' THEN 'MORA BLANDA' WHEN '3' THEN 'MORA BLANDA'

我正在尝试更新一个包含多达388.000行的表

以下是查询:

UPDATE DL_RG_ANALYTICS.SH_HISTORICO
        FROM 
        (
SELECT TIPO_MORA,
CASE TRAMOMORA
    WHEN '0' THEN 'VIGENTE'
    WHEN '1' THEN 'MORA BLANDA'
    WHEN '2' THEN 'MORA BLANDA'
    WHEN '3' THEN 'MORA BLANDA'
    WHEN '4' THEN 'MORA DURA'
    WHEN '5' THEN 'MORA DURA'
    WHEN '6' THEN 'MORA DURA'
    ELSE 'VIGENTE'
    END AS A
FROM DL_RG_ANALYTICS.SH_historico
) X
SET  TIPO_MORA = A
我用多个列进行了更新,但我不知道如何仅用一个列和select中的一个case进行更新


非常感谢您的帮助。

您不能在将同一个表作为子查询读取时更新它。 另外,通常,如果要连接两个表,最好在where子句中编写一个joiner,否则会得到一个笛卡尔乘积连接和执行计划噩梦

试试这个:

UPDATE DL_RG_ANALYTICS.SH_HISTORICO
SET
TIPO_MORA = CASE TRAMOMORA WHEN '0' THEN 'VIGENTE'
                           WHEN '1' THEN 'MORA BLANDA'
                           WHEN '2' THEN 'MORA BLANDA'
                           WHEN '3' THEN 'MORA BLANDA'
                           WHEN '4' THEN 'MORA DURA'
                           WHEN '5' THEN 'MORA DURA'
                           WHEN '6' THEN 'MORA DURA'
                           ELSE 'VIGENTE'
            END;

我希望它能有所帮助。

您不能在将同一个表作为子查询读取时更新它。 另外,通常,如果要连接两个表,最好在where子句中编写一个joiner,否则会得到一个笛卡尔乘积连接和执行计划噩梦

试试这个:

UPDATE DL_RG_ANALYTICS.SH_HISTORICO
SET
TIPO_MORA = CASE TRAMOMORA WHEN '0' THEN 'VIGENTE'
                           WHEN '1' THEN 'MORA BLANDA'
                           WHEN '2' THEN 'MORA BLANDA'
                           WHEN '3' THEN 'MORA BLANDA'
                           WHEN '4' THEN 'MORA DURA'
                           WHEN '5' THEN 'MORA DURA'
                           WHEN '6' THEN 'MORA DURA'
                           ELSE 'VIGENTE'
            END;

我希望它能有所帮助。

您最终得到的是
DL_rgu ANALYTICS.SH_historic
x
DL_rgu ANALYTICS.SH_historic
记录数的笛卡尔积。您需要一个WHERE子句将子查询与主表连接起来。是否尝试根据同一行中的TRAMOMORA列更新每一行中的TIPO_MORA?这样就不需要联接或子查询。只需
UPDATE DL_RG_ANALYTICS.SH_HISTORICO SET TIPO_MORA=*您的案例表达式*
DL_rgu ANALYTICS.SH_HISTORICOx
DL_rgu ANALYTICS.SH_HISTORICO
记录数的笛卡尔乘积。您需要一个WHERE子句将子查询与主表连接起来。是否尝试根据同一行中的TRAMOMORA列更新每一行中的TIPO_MORA?这样就不需要联接或子查询。只需
更新DL\u RG\u ANALYTICS.SH\u HISTORICO SET TIPO\u MORA=*您的案例表达式*