憨厚生

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

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

          在查詢的時候,有這樣的一個需求
          數(shù)據(jù)庫內(nèi)容如下:
          iD  description

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

          我想查詢輸入以下結(jié)果:
          iD  description

          1     TableClassA
          2     TableClassB
          3     TableClassC
          4     TableClassD
          及查詢的結(jié)果是.號或,前的內(nèi)容
          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 二胡 閱讀(912) 評論(0)  編輯  收藏 所屬分類: pl/sql
          主站蜘蛛池模板: 潼关县| 津市市| 察隅县| 扶沟县| 河津市| 平凉市| 金山区| 商南县| 万全县| 邵阳市| 汝阳县| 兰州市| 镇康县| 周口市| 涞水县| 建水县| 谢通门县| 红河县| 宝丰县| 稷山县| 岑巩县| 西峡县| 辽宁省| 毕节市| 丹江口市| 凉山| 崇阳县| 祁连县| 常山县| 高雄市| 牡丹江市| 措勤县| 淳化县| 九龙城区| 乐清市| 南昌市| 汉川市| 通许县| 兰考县| 西藏| 沾益县|