我对SQL很新,并且想知道从SQL逻辑角度看哪个关系顺序对列。
例如,
如果我有
SELECT NAME, sal, comm, id
FROM Cust c, Account a
WHERE c.acc_num = a.acc_num
AND comm > ALL (
SELECT Avg(sa.comm)
FROM savings sa
GROUP BY sa.total
)
ORDER BY 2, 3
该语句是否实际上分别返回sal和comm的顺序,还是会出错?
答案 0 :(得分:0)
您需要SELECT sa.total, Avg(sa.comm)
,但AND comm > ALL
无法使用
即使ORDER BY 2, 3
有效,最好使用真实姓名,以避免在有人改变列顺序时中断,也可以提高阅读效果。
SELECT NAME, sal, comm, id
FROM Cust c, Account a
WHERE c.acc_num = a.acc_num
AND comm > ALL (
SELECT sa.total, Avg(sa.comm)
FROM savings sa
GROUP BY sa.total
)
ORDER BY sal, comm