7

例如:

COPY INTO @my_stage/my_test.csv 
FROM (select * from my_table) 
FILE_FORMAT = (TYPE = CSV) 
OVERWRITE=TRUE SINGLE=TRUE 

将产生一个 csv 但不包括列标题。如果无法使用 copy into 语句,是否有任何不明显的技术可以实现这一点?

提前致谢。

4

3 回答 3

7

雪花已添加此功能。您可以简单地添加一个选项HEADER=TRUE

COPY INTO @my_stage/my_test.csv 
FROM (select * from my_table) 
FILE_FORMAT = (TYPE = CSV) 
OVERWRITE=TRUE SINGLE=TRUE HEADER=TRUE
于 2016-04-23T00:37:25.680 回答
3

我们以前见过这个请求,它在我们的路线图上。如果它对您来说是高优先级,请联系 Snowflake 支持。

如果您正在寻找一种解决方法,那么很难想出一个真正通用的解决方法。

  • 一种选择是添加具有显式列名的单行,但您需要提前知道它们,如果不是所有字段都是字符串,它可能效率不高。
  • 另一种是使用 OBJECT_CONSTRUCT(*) 转换所有记录并导出为 JSON,然后您将拥有列名,但当然只有在您可以摄取 JSON 时才有用。

但我希望 Snowflake 能在不久的将来添加这个功能。

于 2016-03-28T05:13:32.817 回答
0

为了补充@Jiaxing 的答案,雪花HEADER功能还允许您通过以下方式命名列来明确定义列名AS

COPY INTO @my_stage/my_test.csv 
FROM (
  SELECT
    column1 AS "Column 1",
    column2 AS "Column 2"
  FROM my_table
) FILE_FORMAT = (TYPE = CSV)
于 2019-03-20T18:58:12.873 回答