oracle怎么截取“[289]+[362]”中括号里面的数字 给高分谢谢 oracle如果有一列数据待括号如何把括号里面的内容去掉

\u600e\u6837\u5b9e\u73b0oracle\u4e2d\u622a\u53d6\u62ec\u53f7\u4e2d\u6c49\u5b57

substr(\u5b57\u6bb5\u540d,instr(\u5b57\u6bb5\u540d,'(')+1,instr(\u5b57\u6bb5\u540d,')')-instr(\u5b57\u6bb5\u540d,'(')-1)

\u5176\u5b9e\u65b9\u6cd5\u5f88\u591a\uff0c\u4e3b\u8981\u662f\u67e5\u627e\u5230\u5de6\u62ec\u53f7\u548c\u53f3\u62ec\u53f7\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u8fdb\u884c\u622a\u53d6\u5b57\u7b26\u4e32\u5c31\u53ef\u4ee5\u4e86\uff01
\u5982\u679c\u4f60\u62ec\u53f7\u5185\u5bb9 \u90fd\u662f\u5728\u6700\u540e\u7684\u8bdd\uff0c\u53ef\u4ee5\u7528\u4ee5\u4e0b\u7684\u8bed\u53e5\uff0c\u4ec5\u505a\u53c2\u8003\uff01

select substr(a.\u89c4\u683c,1,instr(a.\u89c4\u683c,'(') -1 )
from pham_ybbm a

如楼上所说,10g以后的版本可以用regexp_substr函数
如果oracle版本较低,9i及以下版本可使用translate函数
如你上边那个
select translate('[289]+[362]-[323243]ppp[454353]','0123456789'||'[289]+[362]-[323243]ppp[454353]', '0123456789') from dual;

具体语法
select translate(字段名,字段名||'0123456789','0123456789') from table where 条件

SELECT substr('This is a test', 6, 2) FROM dual 返回 'is' 因为空格也算一个位置的。 这个就是从第6个开始截取2个字符 至于你内容不固定,你可以根据instr(“[289]+[362]-[323243]ppp[454353]”,'[')+1 找到第一个[的位置,然后再类似的找到]这个位置,然后循环+1的方式再去找第二个[这样,一直匹配下去拼接带入 substr里面就可以取出来值了

使用oracle的函数 regexp_substr,截取数字即可,比如 regexp_substr('[289]+[362]',''[0-9]+'')

写个自定义函数处理吧。。。。

额 还有就是用正则表达式了。。。

  • oracle鎬庝箞鎴彇鈥[289]+[362]鈥濅腑鎷彿閲岄潰鐨勬暟瀛 缁欓珮鍒嗚阿璋
    绛旓細濡傛灉oracle鐗堟湰杈冧綆锛9i鍙婁互涓嬬増鏈彲浣跨敤translate鍑芥暟 濡備綘涓婅竟閭d釜 select translate('[289]+[362]-[323243]ppp[454353]','0123456789'||'[289]+[362]-[323243]ppp[454353]', '0123456789') from dual;鍏蜂綋璇硶 select translate(瀛楁鍚,瀛楁鍚峾|'0123456789','0123456789') from table where 鏉...
  • oracle鎬庝箞鎴彇鈥[289]+[362]鈥濅腑鎷彿閲岄潰鐨勬暟瀛,骞舵妸鎴彇鍒扮殑鏁板瓧缁勬垚...
    绛旓細4銆佽鏁板櫒涓1鏃讹紝鎶婂瓧绗﹀姞鍏ユ墍寰楀瓧涓层
  • oracle鎴彇瀛楃涓蹭腑鐨勪竴閮ㄥ垎oracle鎴彇
    绛旓細1銆乻ubstr(瀛楃涓诧紝-10锛Oracle 瀛楃涓插嚱鏁 substr(瀛楃涓,鎴彇寮濮嬩綅缃,鎴彇闀垮害) 1. 濡傛灉鏈鍚庝竴涓埅鍙栭暱搴﹀弬鏁颁负绌猴紝鍒欒〃绀轰粠鎴彇寮濮嬩綅缃捣鎴埌鏈鏈 2. 濡傛灉鎴彇寮濮嬩綅缃 涓哄ぇ浜0鐨勬暟瀛椼2銆佸垯琛ㄧず浠庡瓧绗︿覆宸︽暟鍑犱綅寮濮 3. 濡傛灉鎴彇寮濮嬩綅缃 涓哄皬浜0鐨勬暟瀛楋紝鍒欒〃绀轰粠瀛楃涓插彸鏁板嚑浣嶅紑濮嬨
  • oracle涓埅鍙涓涓瓧绗︿覆涓殑鏁板瓧鎬庝箞鍋?
    绛旓細濡傛灉Oracle鐗堟湰涓嶆槸澶綆鐨勮瘽锛屼娇鐢 姝e垯琛ㄨ揪寮忓嚱鏁 REGEXP_SUBSTR 澶勭悊銆俓x0d\x0a\x0d\x0a5涓弬鏁癨x0d\x0a绗竴涓槸杈撳叆鐨勫瓧绗︿覆\x0d\x0a绗簩涓槸姝e垯琛ㄨ揪寮廫x0d\x0a绗笁涓槸鏍囪瘑浠庣鍑犱釜瀛楃寮濮嬫鍒欒〃杈惧紡鍖归厤銆傦紙榛樿涓1锛塡x0d\x0a绗洓涓槸鏍囪瘑绗嚑涓尮閰嶇粍銆傦紙榛樿涓1锛塡x...
  • 鎴彇ORACLE瀛楃涓蹭腑鐨勬暟瀛
    绛旓細鍙互閫氳繃REGEXP_SUBSTR鍑芥暟锛堥厤鍚堟鍒欒〃杈惧紡锛夋潵瀹炵幇銆備妇渚嬶細sql:select regexp_substr('CYJ8-ABC','[0-9]+') from dual;浠ヤ笂sql鎵ц缁撴灉锛8锛涘娉細REGEXP_SUBSTR鍑芥暟鏍煎紡濡備笅锛歠unction REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr 锛氶渶瑕佽繘琛屾鍒欏鐞嗙殑瀛楃涓 _...
  • oracle涓 sql鎴彇鏌愪釜瀛楃鍓嶉潰鍜屽悗闈㈢殑鍊
    绛旓細1銆佸皢鏂板缓濂界殑琛╝aaa锛屽~鍏呴渶瑕佹煡璇㈢殑鏁版嵁浠"_"鎴栬","涓哄垎闅旂鐨勪袱鏉℃暟鎹2銆佸厛鎸慖D涓1鐨勬暟鎹繘琛鎴彇鏌ヨ婕旂ず銆3銆佸鏋滃凡鐭ユ埅鍙栧瓧绗︾殑闀垮害鍜岀壒娈婂瓧绗︿綅缃紝灏卞彲浠ョ敤substring()鍑芥暟鏉ヤ粠瀛楃涓茬殑寮濮嬩綅缃紝鎴彇鍒扮壒娈婂瓧绗﹀嚭鐜扮殑浣嶇疆銆4銆佷娇鐢╟harindex()鍑芥暟鏉ヨ繑鍥炵壒娈婂瓧绗﹀嚭鐜扮殑浣嶇疆锛屾煡璇㈢粨鏋滃強璇彞...
  • oracle 鎬庝箞浠庡悗寮濮鎴彇瀛楃
    绛旓細1銆佸湪oracle涓缁忓父闇瑕佷娇鐢ㄥ埌鎴彇瀛楃涓插嚱鏁皊ubstr銆傝娉曪細substr(str,num1,[num2]); 榛樿鎯呭喌涓嬮兘鏄彧闇瑕佷袱涓弬鏁帮紝瀹冪殑鎰忔濇槸浠庣浜屼釜瀛楃寮濮嬫埅鍙杝tr瀛楃涓插墿涓嬫墍鏈夌殑瀛楃銆2銆乻ubstr鍑芥暟涓浜屼釜鍙傛暟涔熷彲浠ユ槸璐熸暟锛屽畠鐨勪娇鐢ㄦ槸浠巗tr鍊掓暟绗琻um1涓瓧绗︾殑浣嶇疆寮濮嬫埅鍙栥3銆佷篃鍙互鍚屾椂浣跨敤涓変釜鏁帮紝...
  • 鎴彇oracle瀛楃涓蹭腑鐨勬暟瀛
    绛旓細鏈夊绉嶆柟娉曪細select regexp_substr('ED2WCSID_PH_20110324.txt','[0-9]+',5) from dual;缁撴灉锛歴elect regexp_substr('EDWCSID_PH_20110324.txt','[0-9]+') from dual;缁撴灉锛
  • Oracle涓鏈夊瓧绗︽暟瀛,鎴彇鏁板瓧
    绛旓細CREATE OR REPLACE TYPE mytable AS TABLE OF varchar2(100);create or replace function split(src varchar2, delimiter varchar2)return mytable is psrc varchar2(500);a mytable := mytable();i number := 1; -- j number := 1;begin psrc := rtrim(ltrim(src, delimiter...
  • 鍏充簬Oracle瀛楃涓鎴彇
    绛旓細-- 鏂规硶涓锛氬嚱鏁板垏鍓--鍔熻兘鎻忚堪锛氱敤鎸囧畾鍒嗛殧绗﹀垏鍓茶緭鍏ョ殑瀛楃涓诧紝杩斿洖涓缁存暟缁勶紝姣忎釜鏁扮粍鍏冪礌涓轰竴涓瓙涓层侰REATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN ty_str_splitIS j INT := 0; i INT := 1; len INT := 0; len1 INT ...
  • 扩展阅读:oracle从右往左截取字符串 ... oracle左截取函数 ... oracle 存储过程写法 ... oracle截取日期 ... oracle截取后四位 ... dialux evo怎么删除空间 ... oracle substr从后截取 ... oracle日期格式化yyyymmdd ... oracle怎么截取字符中的数字 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网