我想在DB2(版本10.5)中使用类似REGEXP_SUBSTR的东西。
有一个我尝试过的例子:
SELECT REGEXP_SUBSTR('hello to you', '.o')
FROM sysibm.sysdummy1
我收到此错误:[错误代码:-420,SQL状态:22018]
09:23:12 [SELECT - 0 row(s), 0.000 secs] [Error Code: -420, SQL State: 22018] DB2 SQL Error: SQLCODE=-420, SQLSTATE=22018, SQLERRMC=INTEGER, DRIVER=3.57.82
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec [0 successful, 0 warnings, 1 errors]
答案 0 :(得分:0)
DB2中没有与REGEXP_SUBSTR
等效的函数。
但是,使用XMLQUERY
函数
SELECT
XMLCAST(
XMLQUERY('fn:replace($src,"^hello | you$","")'
PASSING 'hello to you' AS "src")
AS VARCHAR(255))
FROM SYSIBM.SYSDUMMY1;
难度这里,fn:replace 删除匹配的模式,因为DB2的实现不支持()
和$1
子分组模式
答案 1 :(得分:0)
有了import i18n from './i18n';
import './index.scss';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './modules/app/app/app';
i18n.init().then(
() => ReactDOM.render(<App />, document.getElementById('root'))
);
,现在有了DB2 V11.1
。它就像this一样工作:
REGEXP_SUBSTR()
返回与'o'前面的任何字符匹配的字符串。
结果为“ lo”。
SELECT REGEXP_SUBSTR('hello to you', '.o',1,1)
FROM sysibm.sysdummy1Copy
返回第二个与“ o”之前的任何字符匹配的字符串。
结果为“至”。
SELECT REGEXP_SUBSTR('hello to you', '.o',1,2)
FROM sysibm.sysdummy1Copy
返回与“ o”之前的任何字符匹配的第三个字符串。
结果是'yo'。