通常,当我尝试在 SnowFlake 中选择多个列并且我忘记使用逗号(而不是a,b,c
我写a b c
)时,它会给我一个错误。
输入:
select a b c from (
SELECT column1 as c, column2 as a, column3 as b
FROM (VALUES ('Q','g','a'),('C','D','x'))
);
输出:
SQL 编译错误:位置 11 的语法错误第 1 行意外'c'。
但是当我尝试仅在两列之间执行此操作时,它不会引发任何错误,而是返回错误的结果:
select a b from (
SELECT column1 as a, column2 as b, column3 as c
FROM (VALUES ('Q','g','a'),('C','D','x'))
);
输出:
它只显示单列,其中包含来自 column 的值,a
但表示它是 column b
。我在不同的仓库、不同的窗口、不同的列名和值的名称上尝试了几次,结果还是一样。
这种行为的原因是什么?为什么它不像在 3 列的情况下那样引发错误消息?我发现这种行为非常令人困惑。我可以以某种方式告诉 SF 引发错误(就像 3 列或更多列的情况一样)?