select * from test where regexp_like(text,'(123|234)')
LZ开了两个帖子,另外一个帖子有用translate函数解答的还是不错. 楼上没有领会LZ的意思
SELECT TYPE FROM (SELECT ROW_NUMBER() OVER(PARTITION BY TRIM(T1.STR) ORDER BY T1.TYPE) AS RN, T1.TYPE FROM (SELECT T1.TYPE, TRANSLATE(T1.TYPE, 'X', T2.TYPE) AS STR FROM TEST1 T1, TEST1 T2) T1 INNER JOIN (SELECT T1.TYPE, TRANSLATE(T1.TYPE, 'X', T2.TYPE) AS STR FROM TEST1 T1, TEST1 T2) T2 ON T1.TYPE <> T2.TYPE AND SUBSTR(T1.STR, 'X') = 0 AND SUBSTR(T2.STR, 'X') = 0 AND TRIM(T1.STR) = TRIM(T2.STR)) WHERE RN = 1
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY TRIM(T1.STR) ORDER BY T1.TYPE) AS RN,
T1.TYPE
FROM (SELECT T1.TYPE, TRANSLATE(T1.TYPE, 'X', T2.TYPE) AS STR
FROM TEST1 T1, TEST1 T2) T1
INNER JOIN (SELECT T1.TYPE, TRANSLATE(T1.TYPE, 'X', T2.TYPE) AS STR
FROM TEST1 T1, TEST1 T2) T2 ON T1.TYPE <> T2.TYPE
AND SUBSTR(T1.STR, 'X') = 0
AND SUBSTR(T2.STR, 'X') = 0
AND TRIM(T1.STR) =
TRIM(T2.STR))
WHERE RN = 1