'不明确的列名'

时间:2017-05-02 09:58:14

标签: sql sql-order-by

当我执行以下查询时:

select ProjectID, UserID, * 
from UserDetails 
where ProjectId='123456' 
order by UserID

我将'不明确的列名UserID'作为错误

但是,当我写相同的查询时:

select ProjectID, UserID, * 
from UserDetails UD 
where ProjectId='123456' 
order by UD.UserID

它不会抛出任何错误。

有人可以解释为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

这是因为您选择了两次列。使用通配符*选择所有列。第二个查询不会引发错误,因为您已经将一组字段别名,因此与另一组字段没有重叠。

答案 1 :(得分:0)

为了快速说明,UD.UserId的顺序在select中创建了Alias。这就是第二个查询没有显示错误的原因。因为表已被指定。