幸せのちから

          平凡的世界
          看似平常實崎嶇
          成如容易卻艱辛

          ORACLE SQL中使用case來分別調用like和等號關聯的操作

          需求定義: 對于傳入的字符串參數,需要對該字符串進行判斷,如果字符串含有%號,則條件語句中應使用ORACLE的like語句,否則的話直接找相等的字符串。

          SQL語句:
          SELECT
              *
          FROM
                  TABLEA
          WHERE  
                 COLUMN1 =  'KEYWORD-COLUMN1'     AND
                 COLUMN2    IN
                      (SELECT
                          CASE
                          WHEN INSTR('KEYWORD-COLUMN2', '%') > 0
                          THEN
                              (SELECT COLUMN2  FROM  TABLEA WHERE COLUMN2  like 'KEYWORD-COLUMN2'
                              )
                          ELSE
                              (SELECT COLUMN2 FROM TABLEA WHERE COLUMN2  = 'KEYWORD-COLUMN2'
                              )
                          END
                          FROM DUAL
                      )
          以上的KEYWORD-COLUMN1和KEYWORD-COLUMN2都是定義的參數,需要根據傳入的值來分別進行操作。主要是使用了ORACLE的CASE語句。
          不知道有哪位高人有更好的方法。

          posted on 2009-03-11 12:47 Lucky 閱讀(1068) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2009年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 突泉县| 瑞昌市| 湟源县| 和顺县| 西吉县| 体育| 阳曲县| 潼南县| 毕节市| 台东县| 湾仔区| 偏关县| 无极县| 收藏| 民丰县| 合作市| 麟游县| 平远县| 黄山市| 崇明县| 贵德县| 衡阳县| 苍山县| 麻阳| 中牟县| 应用必备| 谷城县| 临猗县| 宝兴县| 湘西| 闽侯县| 龙里县| 翁牛特旗| 隆回县| 青海省| 彰化市| 盐城市| 永嘉县| 台安县| 阿拉善左旗| 景德镇市|