插入...选择

时间:2017-10-08 09:22:42

标签: sql teradata sql-insert

我想在第一个表“p_edw_tmp.TK_NPS_subdate”的列中插入值,这些值必须具有相同的标识符(subs_id = subs_id),但我的请求在此处插入空值我的请求和我得到的结果

INSERT INTO p_edw_tmp.TK_NPS_subdate (activationDate) 

SELECT   b.activation_date
FROM P_EDW_BO_UNIVERSE.DW_SUBNOS  b
WHERE p_edw_tmp.TK_NPS_subdate.subs_id=b.subs_id 

结果

survey          subno   subs_id     activationdate
date
NULL            NULL    NULL        28/03/2013
NULL            NULL    NULL        14/09/2017
NULL            NULL    NULL        11/02/2006
NULL            NULL    NULL        07/02/2007
NULL            NULL    NULL        20/04/2011
01/07/2015  770611368   60 584 365  NULL
01/07/2015  772682168   3 541 647   NULL
01/07/2015  770827778   6 616   NULL
01/07/2015  774614365   34 444 141  NULL
01/07/2015  796997578   73 457 413  NULL

我希望得到这样的结果

01/07/2015  770611368   60 584 365  07/02/2007
01/07/2015  772682168   3 541 647   20/04/2011

2 个答案:

答案 0 :(得分:2)

好像你想要更新现有数据:

string = ''.join(' ' if ch in vowels else ch for ch in string)

答案 1 :(得分:1)

这是因为您只选择列b.activation_date并指定列(activationDate)名称并仅插入该列。

您需要指定要在插入中插入的列名称并选择它们。因此,您可以将查询更改为:

INSERT INTO p_edw_tmp.TK_NPS_subdate (survey,subno,subs_id,activationdate) 

SELECT   b.survey,b.subno,b.subs_id,b.activation_date
FROM P_EDW_BO_UNIVERSE.DW_SUBNOS  b
WHERE p_edw_tmp.TK_NPS_subdate.subs_id=b.subs_id