【问题标题】:Insert into Teradata插入 Teradata
【发布时间】:2013-11-23 20:39:45
【问题描述】:
insert into tablex (a,b,c)
select distinct a,b,c
from tableA;

当我单独运行 select distinct 语句时,它显示 6 行。 当我使用 insert 运行时,它显示插入了 0 行。

这是一个错误还是我错过了什么。

#Teradata 13.10

屏蔽的原始查询

INSERT INTO tablex
  (SYSTEM_ID,START_DATE,END_DATE,CURRENT_FLAG )                
SELECT DISTINCT                     
    ,s.SYSTEM_ID                     
    ,s.trans_DATE
    ,DATE '9999-12-31' 
    ,'X' 
FROM  s JOIN  cc
ON s.var_id=cc.var_id
WHERE s.sno = cc.sno
AND s.sno<>s.orino AND s.orino IS NOT NULL AND s.orino <> ''
AND cc.end_date=s.trans_date-1;

【问题讨论】:

  • select count(*) from tablex 返回什么?另外您使用什么客户端以及您使用什么交易模式(Ansi 或 Teradata)?
  • 如果是a,b,c 和a,b,c,你不会得到模棱两可的列错误吗?也许向我们展示真正的查询,或者更接近它的东西。
  • @jboi Teradata 模式,来自表 x = 220,955 的计数(*)
  • 比插入之前多 6 个吗?
  • @jboi 它在 insert 之前。我的插入正在处理 0 行。所以同样的计数。之前和之后 。客户端是 SQL 助手 13.10.0.09

标签: sql teradata


【解决方案1】:

这不是错误 :-)

所有六行都已存在于目标表中,它是一个 SET 表,它会在插入/选择期间自动删除重复的行。

【讨论】:

  • Dieter 更快 :-) 如果要插入六行,请将表创建为 multiset
  • 我想通了。谢谢
猜你喜欢
  • 2017-02-01
  • 1970-01-01
  • 2013-05-16
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 2018-07-17
  • 2019-10-20
相关资源
最近更新 更多