字段在SELECT子句中被赋予别名,但如果我在ORDER BY子句中使用字段名称,则查询有效

时间:2015-12-15 10:06:59

标签: google-bigquery

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

选择   单词AS word1 来自publicdata:samples.shakespeare s       其中corpus ='1kinghenryiv' 按字母排序

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

SELECT -n as n1 FROM T ORDER BY n1

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

SELECT -n as n1 FROM T ORDER BY n

将产生-1,-2,-3,-4,-5,......

答案 1 :(得分:0)

我认为,这是一个看起来更像是我的错误的功能:o)
请注意,如果您的别名具有相同的名称,它将按该别名排序,另外它将按fileld排序,即使字段不是select的一部分(但是您选择的部分数据)