Jad*_*ade 2 t-sql sql-server oracle
我一直在寻找与Oracle LEAST功能相当的优势.
我希望实现一个用户定义的函数来完成大约10个相当复杂的计算,并从每个计算中获取最小值.
我在Oracle中会做的是:
SELECT LEAST
(
select expression1 from dual,
select expression2 from dual,
select expression3 from dual
) from dual
Run Code Online (Sandbox Code Playgroud)
有关Oracle LEAST的更多信息,请访问http://www.techonthenet.com/oracle/functions/least.php.
如果expression1返回10,表达式2返回5,而表达式3返回30,整个表达式将返回5.
因为这可能是大约10-20次计算,所以CASE WHEN语法很快就会变得难以处理.
虽然如果我们更多地分解它,代码将更具可读性,但我认为在一个数据库查询中执行它会更有效.请告诉我在这一点上我是不正确的!
即,具有20个简单查询的存储过程明显慢于存储过程,其中一个查询在一个查询中引用了大量表.
这个查询可以帮助:
SELECT min(c1)
from (
select expression1 as c1
union all
select expression2 as c1
union all
select expression3 as c1
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8843 次 |
| 最近记录: |