憨厚生

          ----Java's Slave----
          ***Java's Host***

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks
               在工作中,有如下需求.通過case的嵌套解決了此問題!特此記錄一下!(我用的是sql server 2005)
              
              

          在查詢的時候,有這樣的一個需求
          數據庫內容如下:
          iD  description

          1     TableClassA.getName()
          2     TableClassB.getName(),exception
          3     TableClassC,getName()
          4     TableClassD,getName().null

          我想查詢輸入以下結果:
          iD  description

          1     TableClassA
          2     TableClassB
          3     TableClassC
          4     TableClassD
          及查詢的結果是.號或,前的內容
          SQL如下

          select id,
               case
              when (CHARINDEX(',',description)>0) and (CHARINDEX('.',description)>0)
               then --在這個做了判斷,如同時包含.和,則判斷.和,那個在前
                case 
                 when CHARINDEX(',',description)>CHARINDEX('.',description) then left(description,CHARINDEX('.',description)-1)
                 when CHARINDEX(',',description)<CHARINDEX('.',description) then left(description,CHARINDEX(',',description)-1)
                end
              when (CHARINDEX(',',description)>0) then left(description,CHARINDEX(',',description)-1)
              when (CHARINDEX('.',description)>0) then left(description,CHARINDEX('.',description)-1)
              else description
             end
             as description
            from  tablename

          posted on 2009-12-01 16:28 二胡 閱讀(911) 評論(0)  編輯  收藏 所屬分類: pl/sql
          主站蜘蛛池模板: 正宁县| 岳西县| 平泉县| 磴口县| 兴安盟| 尼勒克县| 乐亭县| 公安县| 芮城县| 商南县| 阿图什市| 德保县| 札达县| 乌鲁木齐县| 那曲县| 南宫市| 布尔津县| 潜山县| 女性| 甘谷县| 韩城市| 南宁市| 徐闻县| 哈尔滨市| 三门县| 社会| 镇巴县| 苏州市| 岑巩县| 怀化市| 侯马市| 屯门区| 肇东市| 景东| 宜良县| 永嘉县| 宁明县| 白河县| 巴林左旗| 武汉市| 延安市|