根据条件加入,从列值中删除一部分子字符串
join based on condition, remove a part of substring from column value
我想通过替换列开头的模式来连接 2 个表的 2 列。
表 1:
ABC_somename_ABC
something_XYZ
表 2:
somename_ABC
somthing_XYZ
在这里,我必须在开头而不是结尾处替换 ABC_ 部分,并进行等值连接。在第二种情况下,它不应该替换,因为它没有 ABC_
我尝试使用 substr,instr 函数删除第一个下划线。
SUBSTR (column, INSTR (column, '') + 1) 这将以任何下划线开头,但我希望它仅在以 ABC 或 XYZ_
开头时起作用
使用正则表达式 REGEXP_SUBSTR ('ABC_somename_ABC','[^]+', 1,2) 替换两边。
我在开始时只有 2 个模式必须删除,例如 ABC、XYZ_
有人可以帮我解决这个问题吗?
看起来你只想在字符串的末尾加入:
on t1.col like '%' || t2.col
如果你真的想在开头测试 "ABC_":
on (t1.col like 'ABC\_%' and t1.col like '%' || t2.col) or
(t1.col not like 'ABC\_% and t1.col = t2.col)
注意:下划线 ('_'
) 是 like
表达式的通配符,因此应进行转义。
我想通过替换列开头的模式来连接 2 个表的 2 列。
表 1:
ABC_somename_ABC
something_XYZ
表 2:
somename_ABC
somthing_XYZ
在这里,我必须在开头而不是结尾处替换 ABC_ 部分,并进行等值连接。在第二种情况下,它不应该替换,因为它没有 ABC_
我尝试使用 substr,instr 函数删除第一个下划线。 SUBSTR (column, INSTR (column, '') + 1) 这将以任何下划线开头,但我希望它仅在以 ABC 或 XYZ_
开头时起作用使用正则表达式 REGEXP_SUBSTR ('ABC_somename_ABC','[^]+', 1,2) 替换两边。 我在开始时只有 2 个模式必须删除,例如 ABC、XYZ_ 有人可以帮我解决这个问题吗?
看起来你只想在字符串的末尾加入:
on t1.col like '%' || t2.col
如果你真的想在开头测试 "ABC_":
on (t1.col like 'ABC\_%' and t1.col like '%' || t2.col) or
(t1.col not like 'ABC\_% and t1.col = t2.col)
注意:下划线 ('_'
) 是 like
表达式的通配符,因此应进行转义。