我为SELECT子句中的字段赋予别名,但如果我在ORDER BY子句中使用字段名称,则查询也有效:
选择 单词AS word1 来自publicdata:samples.shakespeare s 其中corpus ='1kinghenryiv' 按字母排序
这种行为是故意还是错误?
谢谢!
答案 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的一部分(但是您选择的部分数据)