选择了错误的实现方法, 其实很简单!
今天写了下面这一段SQL语句, 在写之前总觉得有更简便的方法, 可就是没有想出来:
SELECT
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(TABLE_NAME,'0','#'),
'1','#') ,'2','#') ,'3','#') ,'4','#')
,'5','#') ,'6','#') ,'7','#') ,'8','#') ,'9','#') PATTERN_NAME
FROM USER_TABLES
下班时坐地铁, 突然想到了Translate函数, 原来可以这么简单:
SELECT
TRANSLATE(TABLE_NAME,'0123456789','##########') PATTERN_NAME
FROM USER_TABLES
我写这个SQL是用来找出一些表结构应当相同的表, 最终的SQL应当如下:
SELECT TABLE_NAME FROM USER_TABLES
WHERE TRANSLATE(TABLE_NAME,'0123456789','##########') IN
(SELECT
TRANSLATE(TABLE_NAME,'0123456789','##########') PATTERN_NAME
FROM USER_TABLES
GROUP BY TRANSLATE(TABLE_NAME,'0123456789','##########')
HAVING COUNT(*) > 1)
看来选择最佳的方法是很必要的.
