日期:2014-05-16 浏览次数:20853 次
CREATE TABLE test_col (col_name VARCHAR2(100));
INSERT INTO TEST_COL (COL_NAME) VALUES ('爱特优科新信息技术(北京)有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('爱特优科信息技术(北京)有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('安那络器件(中国)有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('安那络器件(中国)有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('百润时代网络技术(北京)有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('百润时代网络技术有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('北京艾克赛利科技有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('北京艾克赛利微电子技术有限公司');
INSERT INTO TEST_COL (COL_NAME) VALUES ('百度集团');
INSERT INTO TEST_COL (COL_NAME) VALUES ('新浪集团');
我要实现的结果如下:
1 爱特优科新信息技术(北京)有限公司
2 爱特优科信息技术(北京)有限公司
3 安那络器件(中国)有限公司
4 安那络器件(中国)有限公司
5 百润时代网络技术(北京)有限公司
6 百润时代网络技术有限公司
7 北京艾克赛利科技有限公司
8 北京艾克赛利微电子技术有限公司
最好是挨着的,把相近的显示查询出来
SQL> select * from test_col;
COL_NAME
--------------------------------------------
1
2
22
33
1
中国
日本
米国
韓国
9 rows selected
SELECT n.col_name
FROM (SELECT m.col_name,
m.keyword,
COUNT(*) OVER(PARTITION BY m.rid, m.keyword) cnt1,
COUNT(*) OVER(PARTITION BY m.keyword) cnt2
FROM (SELECT t1.ROWID rid,
t1.col_name,
SUBSTR(t1.col_name, t2.rn, 1) keyword
FROM test_col t1,
(SELECT ROWNUM rn,
max_len
FROM (SELECT MAX(LENGTH(col_name)) max_len
&nb