亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

oracle substr()截取漢字?

oracle substr()截取漢字?

德瑪西亞99 2019-02-03 09:05:07
oracle 11,用substr截取漢子,我發現這個截取沒有什么規律???有地址為北京市石景山區石景山路廣東省深圳市羅湖區XXX上海市浦東區xxxxxxxx把個省截取出來,select add2 from trade_base;select substr(add4,1,3),substr(add2,instr(add2,'省'),instr(add2,'市'))from trade_base;卻成了這個樣子?北京市開頭,截取0-3正常,廣東省深圳市3-6卻為“省深圳市羅湖”我郁悶了求指點?謝謝是把各個市提取出來。我暈看來我犯了一個錯。解決了select substr(add4,1,3) coding ,substr(add2,case when instr(add2,'省') > 0 then instr(add2,'省')+1 else 0 end,3) as areafrom trade_base;
查看完整描述

2 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

不是沒規律

是上海和北京那個沒有省,還有instr選出來的是省那位的長度地址,得+1才是后一位

1select  substr(add2,instr(add2,'省')+1,instr(add2,'市')) from trade_base


查看完整回答
反對 回復 2019-03-14
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

 Oracle的substr函數是用于截取字符串的。

  格式如下:

  substr(字符串,截取開始位置,截取長度) //返回截取的字

  幾種常見用法:

  substr('Hello World',0,1) //返回結果為 'H'  *從字符串第一個字符開始截取長度為1的字符串

  substr('Hello World',1,1) //返回結果為 'H'  *0和1都是表示截取的開始位置為第一個字符

  substr('Hello World',2,4) //返回結果為 'ello'

  substr('Hello World',-3,3)//返回結果為 'rld' *負數(-i)表示截取的開始位置為字符串右端向左數第i個字符

  oracle代碼測試:

1select substr('Hello World',-3,3) value from dual;



查看完整回答
反對 回復 2019-03-14
  • 2 回答
  • 0 關注
  • 2612 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號