Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从字符串db2获取子字符串_Sql_String_Replace_Db2 - Fatal编程技术网

Sql 从字符串db2获取子字符串

Sql 从字符串db2获取子字符串,sql,string,replace,db2,Sql,String,Replace,Db2,例如,我有两个字符串: FO-123-4444-3353-9999-TEXT and 123-4444-3353-88888-something 我如何在没有文本的情况下得到子字符串,如果有FO也没有FO,那么如何在末尾得到一些东西。FO将始终存在或不存在,但文本可以有任何其他单词代替 最终结果应为: 123-4444-3353-88888 and 123-4444-3353-9999 这回答了问题的原始版本 假设“TEXT”和“FO”不出现在字符串中的任何其他位置(如示例中),您可以使用R

例如,我有两个字符串:

FO-123-4444-3353-9999-TEXT and
123-4444-3353-88888-something
我如何在没有文本的情况下得到子字符串,如果有FO也没有FO,那么如何在末尾得到一些东西。FO将始终存在或不存在,但文本可以有任何其他单词代替

最终结果应为:

123-4444-3353-88888 and
123-4444-3353-9999

这回答了问题的原始版本

假设“TEXT”和“FO”不出现在字符串中的任何其他位置(如示例中),您可以使用
REPLACE()

对于修改后的问题,您可以使用
regexp\u replace()


这假设“FO”和“TEXT”位于字符串的开头和结尾。

这回答了问题的原始版本

假设“TEXT”和“FO”不出现在字符串中的任何其他位置(如示例中),您可以使用
REPLACE()

对于修改后的问题,您可以使用
regexp\u replace()


这假设“FO”和“TEXT”位于字符串的开头和结尾。

如果要替换开头的FO-和结尾的-TEXT,请使用regexp\u replace。可以使用或(|)在单个regexp中完成

结果:

123-4444-3353-9999

如果要在开头替换FO-并在结尾替换-TEXT,请使用regexp\u replace。可以使用或(|)在单个regexp中完成

结果:

123-4444-3353-9999

FO只在字符串中出现或不出现一次,但文本值可以不同,一次文本,文本1…文本发生了什么变化,所以我在“bla”或任何其他单词的末尾有?FO只在字符串中出现或不出现一次,但文本值可以不同,一次文本,文本1…什么样的it文本改变了我在“bla”或任何其他单词的结尾?什么样的it文本改变了我在“bla”或任何其他单词的结尾?也许最好使用子字符串并检查'-'的出现?@John。然后调整正则表达式。你一直在改变问题。你应该接受你实际提出的问题的答案,而不是不断地移动。如果需要的话,你可以问一个新问题。好吧,我同意,你的答案对我的第一次回答是正确的question@John例如,从SYSIBM.SYSDUMMY1中选择regexp_replace('FO-123-4444-3353-9999-TEXT',“^FO-|-[^-]*$,”),这将删除结尾处没有破折号的任何其他字符,包括最后一个dash它的文本更改是什么,所以我在最后有bla或任何其他单词?也许最好使用子字符串并检查'-'的出现?@John。然后调整正则表达式。你一直在改变问题。你应该接受你实际提出的问题的答案,而不是不断地移动。如果需要的话,你可以问一个新问题。好吧,我同意,你的答案对我的第一次回答是正确的question@John例如,从SYSIBM.SYSDUMMY1中选择regexp_replace('FO-123-4444-3353-9999-TEXT',“^FO-|-[^-]*$,”),这将删除任何其他末端不是破折号的字符,包括最后一个破折号
select regexp_replace('FO-123-4444-3353-9999-TEXT','^FO-|-TEXT$','') from SYSIBM.SYSDUMMY1;
123-4444-3353-9999