ORDER BY仅适用于列别名

Rad*_*hiu 3 sql sql-order-by sql-server-2008

所以,我有这个问题

SELECT
    NOTES,
    DATECREATED,
    DATEMODIFIED,
    * 
FROM myTable
WHERE
    USERCREATEDBY = 465
    AND NOTES LIKE ' :%'
ORDER BY DATECREATED
Run Code Online (Sandbox Code Playgroud)

它会抛出这个错误Ambiguous column name 'DATECREATED'.

我发现我的查询没有任何问题,我找到了一个修复方法,其形式是为列添加别名DATECREATED,例如DATECREATED a,按别名排序ORDER BY a.

我不明白为什么会这样,我很想知道为什么.

vc *_* 74 5

这可能是因为你选择DATECREATED两次,一次是作为一列,一次是*

SELECT *
FROM myTable
WHERE
  USERCREATEDBY = 465
  AND NOTES LIKE ' :%'
ORDER BY DATECREATED
Run Code Online (Sandbox Code Playgroud)

应该工作正常