【问题标题】:Netezza Output FormattingNetezza 输出格式
【发布时间】:2015-01-06 09:56:23
【问题描述】:

有谁知道如何根据 Netezza 的字段值重新格式化输出?

我目前正在使用此语法导出数据。

\a \t \f , \o export_ntz.txt SELECT field1,field2,field3,field4 FROM tb_normal \o

当前结果将是这样的:

1234 , 123A , 12    , 123A
ASd2 , 123s , 312   , 123A

我只想按照以下示例重新格式化打印字段:

1234,123A,12 ,123A
ASd2,123s,312,123A

注意:- field1 的长度大小为 4,field3 为 3,那么在我的查询中添加什么选项以使我的结果将被修复打印为列的大小?

【问题讨论】:

  • 列是 char 还是 varchar?

标签: sql netezza


【解决方案1】:

假设您的数据中没有填充,则以下导出应该可以正常工作

CREATE EXTERNAL TABLE 'full_file_path\export_ntz.txt' USING (DELIM ',') AS
SELECT field1,field2,field3,field4 FROM tb_normal;

【讨论】:

  • 尝试您的 SQL,但它返回不允许的相对路径。场景我没有数据填充但是如果数据为空并且我想根据值的长度打印填充,是这样的吗?
  • 当然SELECT nvl(field1,repeat(' ',5)),nvl(field2,repeat(' ',5)),nvl(field3,repeat(' ',5)),nvl(field4,repeat(' ',5)) FROM tb_normal;
  • 或:SELECT substr(rpad(nvl(field1,''),4),1,4),substr(rpad(nvl(field2,''),3),1,3),substr(rpad(nvl(field3,''),3),1,3),substr(rpad(nvl(field4,''),3),1,3) FROM tb_normal;
  • 谢谢 Niederee,我真的很感激。需要添加 \a 以取消格式化对齐。
猜你喜欢
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 2015-04-22
  • 2018-04-17
相关资源
最近更新 更多