夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          SELECT AMOUNT
            INTO l_Amount
            FROM T1
          WHERE...
          條件比較長,省略。可以保證最多只有一條相符結果。
          無記錄的時候,想把l_Amount設為0。

          為了應付無記錄的情況,想了以下這些寫法:

          第1種,先檢查件數(shù):
          SELECT COUNT(*) INTO l_Cnt 以下省略
          IF l_Cnt > 0 THEN
              SELECT AMOUNT INTO l_Amount 以下省略
          END IF;


          第2種,用exception:
          FUNCTION GETAMOUNT RETURN NUMBER
          IS l_Ret BEGIN SELECT AMOUNT INTO l_Ret 以下省略
          RETURN l_Ret
          WHEN NO_DATA_FOUND THEN RETURN 0 END;


          第3種,用UNION:
          SELECT AMOUNT
            INTO l_Amount
            FROM
          ( SELECT AMOUNT
            FROM T1
          WHERE...
          UNION ALL
            SELECT 0 FROM DUAL
          )
            WHERE rownum <=1;


          第4種,用NVL函數(shù):
          SELECT NVL(MAX(AMOUNT), 0)因為最多就一條記錄,MAX,MIN之類的函數(shù)都可以
            INTO l_Amount
            FROM T1
          WHERE...
          posted on 2012-12-25 19:40 HUIKK 閱讀(828) 評論(0)  編輯  收藏 所屬分類: DataBase
          主站蜘蛛池模板: 宾阳县| 塔河县| 鹤壁市| 浦东新区| 长丰县| 泌阳县| 昌平区| 白朗县| 石河子市| 泽普县| 长垣县| 南投市| 成武县| 绥江县| 涿鹿县| 阿拉善右旗| 南乐县| 普宁市| 永川市| 田阳县| 雷山县| 五莲县| 兴宁市| 诸暨市| 鱼台县| 长治县| 新营市| 赤壁市| 鄂托克前旗| 鹤山市| 河南省| 平山县| 竹溪县| 平罗县| 济南市| 连州市| 蓬安县| 湾仔区| 霍山县| 福鼎市| 湖南省|