WITH TAB AS
(SELECT '1 1' ID --含有中英文空格,制表符
FROM DUAL
UNION ALL
SELECT '1
2' ID --含有回车
FROM DUAL),
TAB2 AS
(SELECT '11' ID FROM DUAL
UNION ALL
SELECT '12' ID FROM DUAL)
SELECT T.ID, T2.ID
FROM TAB T, TAB2 T2
WHERE REGEXP_REPLACE(T.ID, '\s', '') = T2.ID;
在处理数据的时候,空格是经常见到的,而且不仅仅是简单的英文空格(一个简单的TRIM()或者REPLACE()就搞定)。数据里面有可能是中文空格、制表符、回车等。因为空白符肉眼不可测。总不能使用多次嵌套REPLACE来去除空白符。所以使用了正则里面的 \s:匹配任意的空白符。