根据所有行的其他列值修改列值

时间:2012-10-19 07:43:11

标签: sql teradata

我有一张teradata桌子。现在我需要添加一个列,比如Flag,并将值插入Flag列,这将依赖于Sale,Sales。如果Sales大于x或Flag = 0,则Flag = 1。 这是目前表格的结构

Sales    Date 
 10    11/11/1987
 20    12/13/1987

我想要的方式如下

Sale    Date       Flag
 10   11/11/1987    0
 20   12/13/1987    1

我试图在论坛上找到这样的问题,但找不到任何问题。如果您发现任何重复问题,请原谅。

3 个答案:

答案 0 :(得分:2)

添加列后,执行更新语句

Update <table>
set Flag = case when Sale<=10 then 0 
                else 1
           end

答案 1 :(得分:2)

您想在此处使用的是CASE声明:

UPDATE teradata_table
SET flag = CASE WHEN sales > 10 THEN 1 ELSE 0 END;

答案 2 :(得分:0)

ALTER TABLE MYTABLE
( FLAG NUMBER(1) );

UPDATE MYTABLE SET FLAG = 1 WHERE SALE >= 10;