Oracle開發中遇到的非空問題小結

Oracle開發中遇到的非空問題小結

今日在使用oracle開發過程中遇到的一個小的問題,由於之前開發人員代碼中的疏忽,在記錄日誌的時候,因爲我們是調不同的運營商的接口,不同的運營商回調我們系統的接口,貌似不同運營商回調的接口是不同開發人員開發的,導致有一個記錄字段有的存儲了,有的沒有存儲,昨天在做報表的時候,要過濾掉某個運營商的信息,還好那個運營商的信息存儲了,信息存儲的變量值爲0,所以我就使用oracle的判斷條件某某字段不等於0,但是在發現結果的時候,數據量少的可憐,後來百度了一下,才發現oracle中如果字段爲空的話的,數據庫自動會幫你轉換爲0,所以那些沒有存儲上的字段在查詢的時候都被數據庫自動轉換爲0了,後來使用了oracle的一個函數解決了以上問題。

NVL函數的介紹

  1. 函數格式:NVL(expr1,expr2)

    介紹:如果第一個參數爲空,那麼則顯示第二個參數的值,如果第一個參數不爲空,則顯示第一個參數本來的值。

另外在找到NVL函數的時候發現了他的延伸函數

NVL2函數的介紹

  1. 函數格式:NVL(expr1,expr2)

    介紹:如果第一個參數爲空,那麼則顯示第二個參數的值,如果第一個參數不爲空,則顯示第三個參數的值。

    NULLIF函數的介紹

  2. 函數格式:NULLIF(exp1,expr2)

    介紹:如果exp1和exp2相等則返回空(NULL),否則返回第一個值。

Coalesce函數

  1. 函數格式:Coalesce(expr1, expr2, expr3….. exprn)

    介紹:表示可以指定多個表達式的佔位符。所有表達式必須是相同類型,或者可以隱性轉換爲相同的類型。返回表達式中第一個非空表達式,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章