繁体   English   中英

创建隐式数据而无需创建临时/易失性/工作表

[英]create implicit data without having to create temp/volatile/working table

这个有可能:

SELECT 'Bla' AS X

为什么在TeraData中这是不可能的:

SELECT 'Bla' AS X
        UNION  
SELECT 'DiBla' AS X

有没有一种方法可以不必在TeraData中创建临时表/易失性表/工作表来实现上述目的?

PS:

错误是:联合,相交或减号的选择必须引用一个表

如果要在一行上两列,请使用:

SELECT 'Bla' AS X, 'DiBla' AS Y

如果你想:

X
Bla
DiBla

然后,您只需执行以下操作:

select 'Bla' as X
union all
select 'DiBlah' as X;

如果你想:

X       Y
Bla     NULL
NULL    DiBla

然后:

SELECT 'Bla' as X, NULL as Y
UNION ALL
SELECT NULL as X, 'DiBla' as Y

您在UNION有一个属性名称mishmash。 您不能在具有不同结构的关系之间执行UNION 因此,使用

SELECT cast('Bla' as varchar(6)) AS X FROM (SELECT 1 a) t
    UNION  
SELECT cast('DiBla' as varchar(6)) AS X  FROM (SELECT 1 a) t

显式强制转换确保数据类型以及属性名称是等效的。 另一个解决方案可能是

SELECT * FROM
(
  SELECT cast('Bla' as varchar(6)) AS X
) t
UNION  
SELECT * FROM
(
  SELECT cast('DiBla' as varchar(6)) AS X
) t

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM