群里讨论问题说,需要将某个字符串例如 "0100100100000” 转换成"0122122100000"的形式,也就是首尾的0不变,中间的0换成2。
有大牛思路为第一个1到最后一个1之间的0直接replace,如下:
SELECT
SUBSTR('0100100100000',1,INSTR('0100100100000', '1', 1, 1))||
REPLACE(SUBSTR('0100100100000',INSTR('0100100100000', '1', 1, 1)-1,INSTR('0100100100000', '1', -1, 1)-INSTR('0100100100000', '1', 1, 1)),'0','2')
|| SUBSTR('0100100100000',INSTR('0100100100000', '1', -1, 1))
FROM DUAL;
我的是思路是先去掉首尾的0,replace后再和原来的字符串进行替换,这样可以保持更好的通用性,当然效率比较低。ltrim和rtrim的实现方法如下:
select
replace(
'0100100100000',
rtrim(ltrim('0100100100000','0'),'0'),
replace(rtrim(ltrim('0100100100000','0'),'0'),'0','2'))
from dual;
在查文档时发现trim的参数trim_character【单个字符替换,前或者后】也可以完成,只能感慨自己基础不牢,有空得好好看完书了,好比当初学破解一样,当你API都不了解清楚的时候,别人编程到底会怎么写,自己心里是没底的,这样的破解肯定事倍功半。
在内存中,模拟一个字符串"010",现在需要把1替换为2,那么过程不外乎为:
1,
假设 有[50001111]="010"
拆散成 ASCII [UNICODE] 得到:
40000001 30
40000002 31
40000003 30
2,循环字符串长度(3)次,开始比较,当前字符值是否和待替换的字符一致,是则替换掉,不是则继续下一个字符的判断
3,替换完成,组合成新字串
以上全部是猜测,仅此记录。至于更高级的trim,ltrim等方式,则是该替换方式的高级封装罢了。
另不知道如何动态调试ORACLE的语句成反汇编形式,俺恨虚拟码 :(
分享到:
相关推荐
本文将详细介绍如何利用`REGEXP_REPLACE`函数来实现字符串替换功能,特别是在复杂的字符串模式匹配与替换方面。 #### 1. REGEXP_REPLACE函数简介 `REGEXP_REPLACE`函数是Oracle提供的一个强大的工具,用于基于正则...
ORACLE 字符串函数是一组用于操作和处理字符串的函数,包括连接、截取、转换、查找、替换、去除空白等操作。 1. 字符串连接函数:`string || string` 该函数用于连接两个字符串,结果是一个新的字符串。例如,`'...
这个函数用于替换字符串中的某个子串。例如,`REPLACE('hello world', 'world', 'universe')` 返回 'hello universe'。 6. **TRIM()** 函数: TRIM() 用于删除字符串开头、结尾或两端的指定字符。例如,`TRIM(' ...
TRIM函数用于移除字符串两端的空白字符或其他指定字符。参数包括:要移除的字符和目标字符串。例如: ``` SQL> select trim(' ' from ' gao qian jing ') from dual; TRIM ------------- gao qian jing ``` 这里...
Oracle数据库中的单行字符串函数是处理和操作字符串数据的...了解并熟练掌握这些单行字符串函数对于在Oracle数据库中进行数据操作和查询至关重要,它们可以帮助开发者高效地处理字符串数据,实现复杂的文本处理需求。
### Oracle常用字符串处理函数 在Oracle数据库中,字符串处理函数是非常重要的工具,它们可以帮助我们高效地管理和操作数据。本文将详细介绍几种常用的字符串处理函数及其应用方法。 #### 1. LTRIM 和 RTRIM ...
14. TRIM函数:TRIM函数可以剪掉字符串两侧的指定字符。LEADING修剪前导字符,TRAILING修剪尾随字符。如TRIM('s' FROM 'string')会删除所有前导和尾随的's'。 除了上述函数,Oracle还提供其他很多函数,如TO_DATE...
TRIM函数用于去除字符串c1前导(LEADING)、尾部(TRAILING)或两者(BOTH)的指定字符c2。如果未指定c2,则默认移除空白字符。 这些函数在处理数据时非常实用,能够满足多种场景的需求。对于其他不常用的函数,...
### Oracle 函数大全:字符串函数、数学函数与日期函数详解 #### 一、字符串函数 在Oracle数据库中,字符串函数是一类非常实用的功能,用于处理和操作文本数据。以下是一些常用的字符串函数及其具体用途: ##### ...
Oracle中的TRIM函数是数据库操作中处理字符串时非常实用的一个函数,主要用来移除字符串两端或其中一侧的特定字符,通常用于去除空格。本文将详细介绍Oracle TRIM函数的使用方法,帮助你更好地理解和运用这一功能。 ...
12. REPLACE函数:REPLACE函数将字符串中的某个子串替换为另一个子串。如REPLACE('he love you', 'he', 'i')返回'i love you'。 13. SOUNDEX函数:SOUNDEX返回一个表示字符串读音的编码,可用于查找发音相似的单词...
4. 替换字符串的一部分,例如 REPLACE 函数可以将母字符串中的指定子字符串替换为另一个字符串 5. 删除字符串的空格,例如使用 TRIM 函数去除字符串两端的空格 6. LPAD 和 RPAD 函数用于在字符串的左右两侧填充指定...
Oracle数据库系统包含丰富的内置函数,这些函数用于处理各种数据类型,包括字符串、数值以及日期等。以下是关于Oracle系统函数的一些详细说明,以标题和描述中提到的几个为例: 1. ASCII 函数: ASCII 函数返回一...
SOUNDEX 函数返回一个与给定的字符串读音相同的字符串。语法为:SOUNDEX(字符串)。示例代码如下: ```sql CREATE TABLE table1(xm VARCHAR(8)); INSERT INTO table1 VALUES('weather'); INSERT INTO table1 VALUES...
Oracle提供了一系列强大的函数,帮助用户对字符串进行各种操作,如查找、替换、截取、转换等。以下是一些重要的Oracle字符处理函数的详细说明: 1. **SUBSTR()** 函数:用于从字符串中提取子串。例如,`SUBSTR...
通过本文的学习,我们了解到在Oracle中将字符串转换为Number类型的几种方法,包括使用`TRIM`、`TRANSLATE`、`REGEXP_REPLACE`以及`TO_NUMBER`函数。每种方法都有其适用场景,选择合适的方法能够有效地解决不同类型的...
14. TRIM函数:可以剪掉字符串开头(LEADING)或结尾(TRAILING)的指定字符,默认是空格。如TRIM(LEADING ' ' FROM ' gao ')将返回'gao '。 15. ABS函数:返回数值的绝对值。ABS(-100)将返回100。 16. MOD函数:...