0

为了暂存和查询文件,文档显示了这个示例查询: SELECT t.$1, t.$2 FROM @mystage1 (file_format => myformat) t;

为了简化字符串操作,我想将 Snowflake 配置为使用除美元符号之外的任何内容作为列引用。例如,用 c 代替 $ 怎么样?

选择 t.c1, t.c2 FROM @mystage1 (file_format => myformat) t;

这是文档的链接: https ://docs.snowflake.com/en/user-guide/querying-stage.html

目前,我被应用程序强制使用 PowerShell 对要由 SnowSql CLI 处理的查询进行编码)。让 PowerShell 发出这个字符串是微不足道的,但随后 SnowSql 添加了它的两分钱,History 显示该语句被处理为 SELECT t., t。FROM @mystage1 (file_format => myformat) t;

4

1 回答 1

0

PowerShell 遵循类似于Bash的引用规则,其中$VARIABLE在双引号字符串中找到时始终解析,而在单引号字符串中从不解析。

阶段查询的语法需要使用$不能替换为另一个字符串的符号。

如果您无法使用文件将查询传递给 SnowSQL(通过其-f [FILE]option)作为绕过 shell 解析的一种方式,并且必须使用-q [TEXT]option,请考虑转义$符号,或者使用无法解析的引号(单引号字符':)或使用 PowerShell 转义字符(反引号字符:)`

snowsql -q 'SELECT t.$1, t.$2 FROM @mystage1 (file_format => myformat) t;'
snowsql -q "SELECT t.`$1, t.`$2 FROM @mystage1 (file_format => myformat) t;"
于 2020-06-13T01:09:26.003 回答