oracle_查詢?nèi)掌谑欠襁^期(大于等于某日期)

          今天開發(fā)CRM的一個小功能,需求大概是這樣的:有一張存儲客戶信息的表,這個表中有一個列代表著該用戶的“提醒時間”,它意為:如果當(dāng)前時間大于等于這個值,那么該用戶就需要在展示的時候被標(biāo)記為“需要提醒”,并且需要展示需要提醒的條數(shù)。

          其實這個問題不應(yīng)該是個大問題,只不過本人oracle比較薄弱,需要進行記錄,以便后查。
          經(jīng)過調(diào)查,我發(fā)現(xiàn)了如下幾個函數(shù)對于實現(xiàn)本需求有幫助::

          1:符號判斷函數(shù) sign

          函數(shù)語法:
          sign(n)

          函數(shù)說明:
          取數(shù)字n的符號,大于0返回1,小于0返回-1,等于0返回0

          示例:
          一、select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;

            SIGN(100) SIGN(-100) SIGN(0)
            ———- ———- ———-
            1 -1  0

          二、a=10,b=20 
            則sign(a-b)返回-1

          2:值比較函數(shù) decode
          函數(shù)說明:
          根據(jù)條件返回相應(yīng)值
          示例:
            decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)  
            該函數(shù)的含義如下:  
            IF 條件=值1 THEN
            RETURN(翻譯值1)
            ELSIF 條件=值2 THEN
            RETURN(翻譯值2)
            ......
            ELSIF 條件=值n THEN
            RETURN(翻譯值n)  
            ELSE
            RETURN(缺省值)
            END IF
          或:
            when case 條件=值1 THEN
            RETURN(翻譯值1)
            ElseCase 條件=值2 THEN
            RETURN(翻譯值2)
            ......
            ElseCase 條件=值n THEN
            RETURN(翻譯值n)  
            ELSE
            RETURN(缺省值)
            END
          感覺這兩個函數(shù)就足夠了,那么現(xiàn)在理清楚寫sql的思路:
          比較每條記錄的“提醒時間”,過期或者到期就意味著需要設(shè)置提醒。
          1:先比較兩個時間
          表:crm_lwh_custinfo
          字段:remind_date(Date)

          1 sign(to_date(t.remind_date,'yyyy.mm.dd')-to_date(sysdate,'yyyy.mm.dd'))

          根據(jù)sign函數(shù)的返回值進一步設(shè)置sql要返回的值
          2:根據(jù)sign函數(shù)的返回值,通過decode函數(shù)設(shè)定sql要返回的值
          過期或者到期都用1標(biāo)識,未到期,也就是默認值用0標(biāo)識

          1 select decode(sign(to_date(t.remind_date,'yyyy.mm.dd')-to_date(sysdate,'yyyy.mm.dd')),-1,1,0,1,0
              as need_remind  from crm_lwh_custinfo t 

          如果你看到這里覺得有什么更好的辦法,或者覺得這種寫法有什么不足,歡迎留言。

          posted on 2015-03-24 14:35 都較瘦 閱讀(5726) 評論(0)  編輯  收藏 所屬分類: Oracle相關(guān)問題積累

          <2015年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計

          公告

          博客定位:囿于目前的水平,博客定位在記錄自己的學(xué)習(xí)心得和隨手的練習(xí)

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西宁市| 射洪县| 固阳县| 高要市| 保山市| 达州市| 东港市| 水城县| 壶关县| 阳新县| 尉犁县| 南投县| 嘉定区| 岐山县| 西乡县| 大名县| 保亭| 河西区| 文安县| 宣城市| 安平县| 太原市| 沙田区| 通海县| 城口县| 望奎县| 晋州市| 昂仁县| 灌南县| 宜兰市| 宜宾市| 闵行区| 昭通市| 四子王旗| 永宁县| 嘉祥县| 阿勒泰市| 东宁县| 宜黄县| 广州市| 江安县|