oracle nvl和coalesce,NVL与Coalesce之间的Oracle差异
慕碼人8056858
COALESCE是更現(xiàn)代的功能,是ANSI-92標(biāo)準(zhǔn)的一部分。NVL在Oracle具體的,它在推出80的前存在任何標(biāo)準(zhǔn)。在兩個(gè)值的情況下,它們是同義詞。但是,它們的實(shí)現(xiàn)方式不同。NVL總是計(jì)算兩個(gè)參數(shù),同時(shí)COALESCE通常在找到第一個(gè)非結(jié)束時(shí)停止評(píng)估NULL(有一些例外,例如序列NEXTVAL):SELECT??SUM(val)FROM????(
????????SELECT??NVL(1,?LENGTH(RAWTOHEX(SYS_GUID())))?AS?val????????FROM????dual????????CONNECT?BY
????????????????level?<=?10000
????????)它運(yùn)行了幾0.5秒鐘,因?yàn)樗闪薙YS_GUID(),盡管1不是NULL。SELECT??SUM(val)FROM????(
????????SELECT??COALESCE(1,?LENGTH(RAWTOHEX(SYS_GUID())))?AS?val????????FROM????dual????????CONNECT?BY
????????????????level?<=?10000
????????)這理解1不是NULL并且不評(píng)估第二個(gè)參數(shù)。SYS_GUID沒有生成,查詢是即時(shí)的。
總結(jié)
以上是生活随笔為你收集整理的oracle nvl和coalesce,NVL与Coalesce之间的Oracle差异的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 找不到程序,Oracle
- 下一篇: ie11加载java插件_IE浏览器中A