【发布时间】:2018-03-11 12:59:10
【问题描述】:
我有两个名为A 和B 的表,其中大多数列不同,而公共列是name。现在我想根据公共字段找到表A中额外的记录
name。如何获得这些?
这里我们还要检查的是表B 中的一些名称在开头有'dummy_','Test_' 之类的词,我们必须对其进行修剪。比如说
表A 有name ='Div_text_col_tar' 和B 有name ='dummy_Div_text_col_tar',实际上是一样的。所以我们必须从名称的开头替换'dummy_'和'Test_'。怎么做?
我尝试如下所示,但没有任何运气:
SELECT *
FROM A t1
WHERE NOT EXISTS
(SELECT 1
FROM B t2
WHERE t1.name = REGEXP_SUBSTR(t2.name,'[^-dummy_|-Test_]+',1,1)
)
AND t1.status =100
AND t1.floor IN ('1','2','3')
【问题讨论】:
-
样本数据和期望的结果会很有帮助。