在 Teradata 中查询 运行 结果

Query run result in Teradata

我在 Teradata 编辑器中 运行 下面的查询:

SELECT 'EMP_INFO_MAIN' as TABLE_NAME, COUNT(1) as RECORD_COUNT FROM SCHEMA.TABLE1 UNION ALL
SELECT 'EMP_SAL' as TABLE_NAME, COUNT(1) as RECORD_COUNT FROM SCHEMA.TABLE2 UNION ALL
SELECT 'DEPARTMENT_INFO' as TABLE_NAME, COUNT(1) as RECORD_COUNT FROM SCHEMA.TABLE3;

查询给出了以下结果:

TABLE_NAME  | RECORD_COUNT
------------|------------- 
EMP_INFO    | 10 
EMP_SAL     | 11 
DEPARTME    | 110 

第一列未显示完整的 table 名称。 有人可以帮忙吗?

这是一个常见问题。

在 Teradata 中,UNION 的第一个 SELECT 决定了生成的数据类型和列名,因此要么更改 SELECT 的顺序以从最长的名称开始,要么在中添加一个 CAST第一个 SELECT:

SELECT CAST('EMP_INFO_MAIN' AS VARCHAR(20)) as TABLE_NAME, COUNT(1) as RECORD_COUNT FROM SCHEMA.TABLE1 UNION ALL
SELECT 'EMP_SAL' as TABLE_NAME, COUNT(1) as RECORD_COUNT FROM SCHEMA.TABLE2 UNION ALL
SELECT 'DEPARTMENT_INFO' as TABLE_NAME, COUNT(1) as RECORD_COUNT FROM SCHEMA.TABLE3;