Archive for January, 2006

Jan 29 2006

NVL, NVL2 or COALESCE?

Published by kamus under Oracle RDBMS

刚看完没什么感觉的春晚,闲来无事,再翻译一篇Eddie Awadblog

NVL, NVL2 or COALESCE?

跟别的RDBMS系统一样,Oracle中的空值(nulls)也应该被特殊对待。在Oracle中,有3个(也许更多?)函数可以用来处理空值,NVL, NVL2 和 COALESCE。我想要问你们一个问题,但是首先我自己得先温习一下。

NVL ( expr1 , expr2 )
如果expr1是空,那么NVL返回expr2。如果expr1不是空,那么NVL返回expr1。

NVL2 ( expr1 , expr2 , expr3 )
如果expr1是空,那么NVL2返回expr3。如果expr1不是空,那么NVL返回expr2。

COALESCE(expr[,expr]…)
返回参数列表中的第一个非空值。

当然我也可以使用CASE或者DECODE函数来处理空值。

下面左右的查询都返回相同的结果:

使用NVL:

  1. HR@XE> select nvl(commission_pct,0)
  2.   2  from employees
  3.   3  where commission_pct is null
  4.   4  and rownum = 1;
  5.  
  6. NVL(COMMISSION_PCT,0)
  7. ---------------------
  8.                     0

使用NVL2:

  1. HR@XE> select nvl2(commission_pct,commission_pct,0)
  2.   2  from employees
  3.   3  where commission_pct is null
  4.   4  and rownum = 1;
  5.  
  6. NVL2(COMMISSION_PCT,COMMISSION_PCT,0)
  7. -------------------------------------
  8.                                     0

使用COALESCE:

  1. HR@XE> select COALESCE(commission_pct,0)
  2.   2  from employees
  3.   3  where commission_pct is null
  4.   4  and rownum = 1;
  5.  
  6. COALESCE(COMMISSION_PCT,0)
  7. --------------------------
  8.                          0

使用CASE:

  1. HR@XE> select
  2.   2      case
  3.   3      when commission_pct is null then 0
  4.   4      else commission_pct
  5.   5      end commission_pct
  6.   6  from employees
  7.   7  where commission_pct is null
  8.   8  and rownum = 1;
  9.  
  10. COMMISSION_PCT
  11. --------------
  12.              0

使用DECODE:

  1. HR@XE> select
  2.   2     decode(commission_pct,null, 0,
  3.   3      commission_pct) commission_pct
  4.   4  from employees
  5.   5  where commission_pct is null
  6.   6  and rownum = 1;
  7.  
  8. COMMISSION_PCT
  9. --------------
  10.              0

我通常都是使用NVL函数来检查空值的,但是,看上去COALESCE函数更加普遍(可以检查多个参数)并且COALESCE是一个所有关系型数据库系统都支持的标准函数。

那么是不是我该改变一下自己使用NVL的习惯转而使用COALESCE呢?各位有什么建议?

请使用这个链接进行函数使用率的投票。

全文完

译者:实际上吸引我的倒不是这篇文章,因为它太简单,呵呵。但是Eddie在文章的最后有一个投票的界面,还挺美观的,按照链接进去看了一下,dPolls,一个很实用的网上投票系统,并且提供了脚本用以将投票界面显示在自己的网页中,看来个人中心越来越受到服务提供商的重视了,无论是Flickr, Del.icio.us, 还是Planzo都提供了这样的脚本,网络中各种服务对于特定用户的体验都允许集中到这个用户自己的网页上,是个很好的现象,对吧。

注册dPolls很简单,注册完毕以后可以创建自己的投票,创建完毕以后dPolls会给出一段代码,将这段代码粘贴在自己的文章中就OK了,下面是我模仿Eddie作的一个完全相同的函数使用率投票,只是show一下界面,大家不要在我这里投,请使用上面的那个Eddie创建的投票链接。


Create polls and vote for free. dPolls.com

5 responses so far

Jan 27 2006

让我们都有化身吧

Published by kamus under Webs

这是一个体现自己的时代,所以让我们都有自己的化身(avatar)吧。

改进blog评论的10点建议中看到gravatar,觉得还挺有意思,尝试了一下。所谓avatar其实用大白话来说就是头像,而gravarar则是一个网站允许你通过邮箱地址来关联自己的avatar,这样以后在所有支持avatar的站点只要输入了自己的email,就自然会显示出自己的avatar。

首先我们在gravatar上注册一个账号,用自己最常用的信箱地址作为标识,比如我是一定会用自己的Gmail信箱了。注册之后会让你上传一个小图片,即使你上传得比较大,也会自动压缩为80*80的大小。

然后剩下的事儿,就都交给各个网站的admin了。比如在我的站点上,只要你发comment时输入了注册gravatar时使用的email地址,那么你的头像就会自动显示在comment的后面。是不是很有意思?

对于Wordpress来说,gravatar提供了插件,如果要稍微自己订制一下,可以去修改自己使用的theme中的comments.php文件。可惜我的HTML功力太差,不知道怎么才能改成像本文中截图的效果。

20 responses so far

Jan 25 2006

Firefox页面比IE更美观?

Published by kamus under Apps

以前一直以为Firefox中表现出来的页面在某些时候比IE会难看,但是由于喜欢Firefox的Open性,所以通常都是包容了。
这几天在楼下的网吧玩,偶尔用IE查看了一下自己的blog,才发现居然IE里面看上去跟Firefox不太一样呢。

首先是首字放大下沉的插件在Firefox的效果是这样的。

但是在IE里面却有些乱的感觉。

其次在侧边页面中添加的网页点击计数器在Firefox中显示的效果是这样的。

而在IE中却惨不忍睹,位置都没有对齐,奇怪的是我用的相同的代码,首页的侧边栏中这个计数器在IE里面是显示正常的,而点击进单独文章之后的页面侧边栏才会变成这个样子。我只能认为这是IE的问题了。

想不到我的blog居然有些Firefox-like了,以后是不是在自己的首页添上,为了更好的阅读体验请使用1024*768分辨率,并且请使用Firefox浏览器呢,哈哈。

话说回来,其实,现在大家都用RSS订阅了,谁还管你的页面到底长什么样子呢。比如Fenng的DBANotes,我天天看到他的文章,但是如果不是他自己说改版了,我可能很久都不会知道。Content is King! 这才是王道吧。

5 responses so far

Jan 23 2006

中国最牛的十句“实话实说”

Published by kamus under Feeling

这几天收到邮件的质量有所提升啊,可惜又是邮件,没有作者,没有链接。虽然大部分话都早有耳闻,收录在一起倒也颇为可观。
是不是该呼吁以后发邮件也应该带上原作者和链接地址呢?
毕竟邮件也是web的一部分。
为了表示不是胡咧的,我Google了这些话,链接上的URL来自各个网络新闻媒体。忽然发现,Google中的结果大部分都是来自网易新闻,我印象中应该是新闻首选的新浪反而很少被Google收录在第一页,这是什么原因?新浪的新闻页面没有做搜索引擎友好性的优化?

1、石油电信电力等行业中几乎没有垄断
  --12月22日国资委主任李荣融在国新办记者会上表示
  “这么好的一个局面中间有很重要的一条原因就是竞争,也可以说我们这些行业当中几乎没有哪一家垄断的。实际上石油、电信、电力已经形成了一个基本竞争的格局,而且这些企业的主要资产都在上市公司。准确地说,他们的股权已经多元化、社会化。”
  “国有企业搞了半天,它是国家的,它是人民的。所以,它所获得的盈利都是为人民谋利益的。”
  解读:石油电信电力都没垄断,都是在为人民服务,他们引进竞争,提升了技术含量,国有企业突飞猛进,包袱扔出去了,外资进来了,利润增加了,民企打跨了,油价疯涨了,电费提价了。而且电力电信的员工福利好,在带领中国人民奔小康的奋斗路上起到了模范先锋作用,贯彻落实了一部分人先富起来的指导方针。

2、 中国教育改革是成功的!
  --12月22日教育部新闻发言人王旭明与网民交流
  “教育部一开始就反对教育产业化,教育产业化会毁掉中国的教育。”
  “我不认为中国的教育改革是失败的。我认为中国教育的改革与发展是成功的。”
  解读:中国不仅养活了十几亿人,还让他们接受了教育。一是使85%以上的娃接受了义务教育,明年开始,全国各地将陆续实施免费义务教育,有的地方连校服费都免收了,择校费也低调处理了;二是使20%的娃接受了高等教育,你没瞧见现如今“博士一走廊、硕士一礼堂、本科一操场”,人才那个鼎沸啊。

3、 药品不能当馒头卖!药价不贵,不同意降价
  --东盛制药集团总裁陶朝辉在“中国医药风云榜”颁奖典礼上抛出“馒头论”
  “药品价格是什么?它不是做馒头,是面粉的成本加上燃气,加上工人工资,比如说一块钱一斤的面粉做成馒头,就只能是一块二;药品本身是一种高风险、高投入、高附加值的产品,它的价值不能够仅仅与它的成本相提并论。”
  解读:药贵不能怪药商,就跟人丑不能怪父母,命苦不能怪~~一样。看不起病,应该怨~~没有免费医疗和医疗保险不健全,应该怨老百姓没有钱来买高价药,唯独不能怨药商。总而言之一句话,你“吃不起药”活该倒霉。反正我生产的药就是高价,你不吃拉倒!

4、 房产就该暴利!
  --11月中旬,北京华远地产董事长任志强在“2005首届中国地产品牌价值评估与品牌评选活动”论坛上发言
  “没有巨大的利润支持,无法建设品牌,因此房产品牌就应该是具有暴利的。”
  解读:房价卖低了不是钱的问题,是关系到面子的问题——别人都卖得高,你卖低了,就挺没面子的。房地产哪是暴利行业啊?不过是税后净利润居各行各业之首,只是比处于第二的电力煤气行业的利润高1倍,比社会平均利润高5倍而已。

5、 矿难与矿工素质不高有关
  --11月30日黑龙江七台河矿难矿方领导接受采访表示
  “井下点多、面广、战线长,可能有某些环节的工人在具体操作过程中,没有按规定办,小链条断裂造成了大过错。虽然经过反复培训,劳动者的素质离我们的要求还差很远。”
  解读:矿工素质确实不高,差在安全意识不强。随身携带的井下自救器过期了不向矿主反映;瓦斯量超标了,上头命令下井生产,他们也不抗争;为了不让有关方面发现井下真实状况,矿主把瓦斯监测探头堵上,他们也不反对。都说“强将手下无弱兵”,矿主们这么“聪明”,矿工们咋就这么“笨”呢?

6、 出现‘警匪勾结’这种情况的重要原因是警察待遇过低
  --成都火车站派出所副所长付小华接受采访时表示
  成都车站派出所属成都铁路公安机关的基层单位,每天面对大批旅客进出,承担的任务可谓相当繁重,而民警的正常月薪不过2000元左右,该派出所的个别警察家产甚至高达上百万元,而他们收入的主要来源,正是小偷们每月的贡献。
解读:火车站是个什么地方啊,人流众多,龙蛇混杂。我们警察长期呆在这空气污浊的地方,风吹日晒,饱受缺氧的痛苦,吃啥补品都补不回来。上有老下有小的,平时有事没事还得去桑下拿,按下摩,一个月就那点工资哪里够用?

7、 起征点太高就剥夺了低收入者作为纳税人的荣誉
  --全国人大农业与农村委员会委员任正隆
  个人所得税的起征点不宜太高,因为交税也是公民的权利。不管一个公民交了多少税,都是“纳税人”,都为这个社会做了力所能及的贡献。起征点太高就剥夺了低收入者作为“纳税人”的荣誉。
  解读:房子可以没有,医保可以不要,但是税不可不缴,为祖国GDP作贡献,是低收入人群享有的最后一项荣誉。

8、外地人进京应该实行准入制度 不能让13亿人都往北京跑
  --1月13日北京市政协委员张惟英作客“首都之窗”时表示
  “这些人(外地人)素质比较低,长期没有工作后,往往会铤而走险,给社会治安带来不安定因素。北京城市发展并不太需要这些人”
  “事实上,北京很多管理混乱的地方就是因为这些人(外地人)造成的,比如说收废品、恶意乞讨的,他们的存在确实损害了北京市民的生活”。
  解读:学希特勒直接将低素质人推入集中营焚化炉,岂不干净?北京发展不需要低素质的人,把他们都拒之门外,从此,垃圾要自己倒了,马路要自己扫了,楼房要自己盖了,北京的城市环境全国第一,人民的教育水平统统赶英超美了。

9、地铁员工家属免费是为反恐
  --广州地铁公司老总在广州地铁票价听证会上如是说
  “众所周知,目前国际恐怖势力猖獗,地铁又是恐怖分子的重点袭击对象,所以必须加强地铁车站、月台、车厢内的反恐力度,地铁员工的力量毕竟有限,而地铁公司又希望每趟列车在碰到任何情况时都有人能够及时地指导救援,那么这些地铁家属就义不容辞地担负起地铁义务安全员的重要职责。”

10、矿工,谁叫你不幸生在了中国!
  --中科院院士何祚庥就中国矿难问题答记者问
  何祚庥:……没法避免!中国煤矿死人也没法避免!因为中国的老百姓太穷了。……主要是穷,而不是腐败。为什么工人能接受较低的工资、较危险的条件?老百姓不是傻子,他们不是不知道啊。那为什么还接受?因为不接受活不下去。……谁叫你不幸生在中国了? 
  摄影师:但不应该死无辜者,有些是可以避免的…… 
  何祚庥:谁是无辜的?谁是可以避免的?它有一个概率分布。何祚庥也不希望死人,但有时候发展过程中的牺牲是不可免的。你希望没一点牺牲,是很不切实际的想法.

No Tags

5 responses so far

Page 1 of 512345»