Google bigquery 字段在SELECT子句中有一个别名,但如果在ORDER BY子句中使用字段名,则查询有效

Google bigquery 字段在SELECT子句中有一个别名,但如果在ORDER BY子句中使用字段名,则查询有效,google-bigquery,Google Bigquery,我在SELECT子句中为字段提供别名,但如果在ORDER BY子句中使用字段名,则查询也有效: 挑选 一字不差 摘自publicdata:samples.s 其中,语料库='1kinghenryiv' 逐字排列 这种行为是故意的还是错误 谢谢 我认为,这一功能在我看来更像是一个bug:o) 请注意,如果您有同名别名,它将按该别名排序,否则它将按fileld排序,即使字段不是select的一部分(而是您从中选择的数据的一部分)它是预期行为,并且与SQL标准兼容。ORDER BY可以引用表中的列,即

我在SELECT子句中为字段提供别名,但如果在ORDER BY子句中使用字段名,则查询也有效:

挑选 一字不差 摘自publicdata:samples.s 其中,语料库='1kinghenryiv' 逐字排列

这种行为是故意的还是错误


谢谢

我认为,这一功能在我看来更像是一个bug:o)

请注意,如果您有同名别名,它将按该别名排序,否则它将按fileld排序,即使字段不是select的一部分(而是您从中选择的数据的一部分)

它是预期行为,并且与SQL标准兼容。ORDER BY可以引用表中的列,即使它们不是SELECT的一部分,或者在本例中,在SELECT中被重命名。 考虑下面两个查询(假设n是整数)

将产生:…,-5,-4,-3,-2,-1

SELECT -n as n1 FROM T ORDER BY n
将产生-1,-2,-3,-4,-5

SELECT -n as n1 FROM T ORDER BY n