作者tkcn (小安)
看板Database
标题[SQL ] 如何消除重复出现的 expression
时间Tue Dec 28 20:56:24 2010
想请问一下在 query 里,
重复出现多次的 expression 有什麽方法可以消除吗?
举例来说:
select t.a+t.b
from t
where t.a+t.b < 10 and ...
order by t.a+t.b
在这 query 里头,t.a+t.b 共出现了三次,
但每一个都会有同样的结果。
我的问题是:
1. 有什麽方法可以消除重复的 expression 出现在 query?
2. 现今的 DBMS 面临上述的 query 时,相同的 expression 会被计算多次吗?
我自己是在使用 mysql 上有这样的需求,
但如果有其他 DBMS 特有的解决方式,我也很有兴趣了解,
谢谢。
--
◤ ◥ ◢ ◣
T$,修好它吧。 ⊙▁⊙─ ─⊙▂⊙ 碰到问题,用SoftICE就对了!
╰ ∕皿﹨ ◥皿◤ ╯
◥█◤◢ ◥ ︶◤
Lee ◤ ︶ ◥◤ ﹨▼∕◥ T$ Chen
MYTHBUGTERS ◥ ◤\◥ by dajidali
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.231
1F:→ danielguo:可以用 subquery, 不过MySQL有时不会对subquery做最佳化 12/29 06:48
请问是类似这样子吗?
select absum
from(
select t.a+t.b as absum
from t
where ...
) as q
where absum < 10
order by absum
确实有达到需求! 谢谢
※ 编辑: tkcn 来自: 140.114.78.231 (12/29 08:45)