【问题标题】:How to filter teradata help table如何过滤 teradata 帮助表
【发布时间】:2011-04-11 21:41:12
【问题描述】:

我想从 teradata 的“帮助表”功能生成的数据集中创建一个表,这样我就可以添加有关该表的更多信息,并能够按条件过滤行。该表有 400+ 列,因此管理起来非常方便。我希望能够执行类似于将表创建为 select 的操作,但它不适用于帮助表语法。没有将数据导出到 excel,然后手动创建表架构并将表重新导入,有谁知道如何将帮助表查询的输出转换为 teradata 中的表?

【问题讨论】:

    标签: teradata


    【解决方案1】:

    HELP TABLE 命令的输出来自数据字典。

    如果我理解正确,您想创建一个具有以下输出的新表。

    帮助表 t1; *** 帮助信息返回。 4行。 *** 总经过时间为 1 秒。 列名 类型 注释 ------------------ ---- -------- a1 我? b1 CF ? c1 D ? d1 达?

    您可以从表 DBC.TVFields 中获取所有这三列(甚至更多)。

    帮助表 dbc.tvfields; 帮助表 dbc.tvfields; *** 帮助信息返回。 37 行。 *** 总经过时间为 1 秒。 列名 类型 注释 ------------------------------ ---- ---------------- 表 ID BF ? 字段名 CV ? 字段 ID I2 ? 可空 CF ? 字段类型 CF ? 最大长度我? 默认值简历? 默认值 BV ? 总数字 I2 ? 隐含点 I2 ? 字段格式简历? 简历 ? 评论字符串简历? Collat​​ionFlag CF ? 大写标志 CF ? 数据库 ID BF ? 可压缩CF ? 压缩值列表简历? 现场统计公司 ? 列检查简历? 检查计数 I2 ? 创建UID BF? 创建时间戳 TS ? LastAlterUID BF ? LastAlterTimeStamp TS ? LastAccessTimeStamp TS ? 访问计数我? SPParameterType CF ? 字符型 I2 ? LobSequenceNo I2 ? IdColType CF ? UDTypeId BF ? UDT 姓名简历? 时间维度 CF ? VTCheckType CF ? TTCheckType CF ? 约束Id BF ?

    但首先我们需要找出 DatabaseId 和 TableId。

    选择数据库标识 来自 dbc.dbase 其中数据库名称='db1'; *** 查询完成。找到一排。一列返回。 *** 总经过时间为 1 秒。 数据库 ID ---------- 00000F04 选择 TVMId 来自 dbc.tables2 其中databaseid='00000F04'xb 和 TVMName='t1'; *** 查询完成。找到一排。一列返回。 *** 总经过时间为 1 秒。 TVMId ------------ 0000D8070000

    现在您可以列出您需要的所有列并相应地存储它们。

    从 dbc.tvfields 中选择 * 其中databaseid='00000F04'xb 和 tableid='0000D8070000'xb;

    【讨论】:

    • 太棒了!我从来不知道很多这样的东西。 tyvm :)
    • 是的。 DBC.Columns->DBC.tables->DBC.Databases 为您提供所需顺序的列表,而无需担心 DatabaseId、TVMID。
    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多