xzh2000的博客 本人提供杭州地区Oracle现场技术支持服务,包括性能调整、DataGuard、RAC等。
19 09, 2006
浅谈dba的别出心裁
作者 xzh2000 19:05 | Permalink 静态链接网址 | Comments 最新回复 (0) | Trackback 引用 (0) | 八卦故事

昨天看了d.c.b.a博客上一篇别出心裁的文章,巧妙地利用sign的特性简化了sql,极大地减少了sql执行的时间,真有化腐朽为神奇的感觉,自己在机器上测试了一下,发现该实现的一个小问题,大家看看偶的测试结果:


select sign(id - 7500),count(*)
from test
group by sign(id - 7500);
SIGN(ID-7500) COUNT(*)
------------- ----------
-1 153
0 1
1 237

如果是偶来做,会不会笨得直接就统计两次呢?真说不准,但通过case when ... end,也可以达到sign的效果,虽然没有d.c.b.a实现方法的简洁,却不会有什么bug,测试如下:

select type, count(*) as cnt
from (select case when id > 7500 then 1
when id <= 7500 then -1 end as type
from test)
group by type;

TYPE CNT
---------- ----------
-1 154
1 237

Comments
博客日历
« 八月 2008 »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
搜索
最新发表
文章分类
文章归档
网站链接
新闻聚合