Oracle数据库 随着版本的不断迭代,很多功能也大大提高了工作效率,我们平时为了方面,会使用select拼接字符串,如果更好更方便实现呢
QUOTE介绍
Q-quote的表达式是用来简化字符串拼接的,示例如下:
--不知道多少单引号 才可以
SQL> select '''today is ' || to_char(sysdate,'yyyy/mm/dd') || '''' as tdate from dual;
TDATE
--------------------------------------------------------------------------------
'today is 2021/06/01'
--使用quote
SQL> select q'['today is ]' || to_char(sysdate,'yyyy/mm/dd') || q'[']' as tdate from dual;
TDATE
--------------------------------------------------------------------------------
'today is 2021/06/01'
字符串截取
regexp_substr 函数使用
function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
string:需要进行正则处理的字符串
pattern:进行匹配的正则表达式
position:起始位置,从字符串的第几个字符开始正则表达式匹配(默认为1) 注意:字符串最初的位置是1而不是0
occurrence:获取第几个分割出来的组(分割后最初的字符串会按分割的顺序排列成组)
modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’)针对的是正则表达式里字符大小写的匹配
SQL> select REGEXP_SUBSTR(NAME,'[^/]+',1,4) from v$datafile;
REGEXP_SUBSTR(NAME,'[^/]+',1,4)
--------------------------------------------------------------------------------
system.260.1018457031
sysaux.261.1018457031
undotbs1.258.1018457031
users.264.1018457267
example.263.1018457267
t2020.262.1035499207
--如果出现不同路径,可以使用union连接
或者使用替换幻术 replace 也行,将不需要的替换为空。
正则表达式参考: https://blog.csdn.net/a720561252803/article/details/90487187