欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

这样的一个sql需求你们遇到过吗?该如何处理

更新时间: 2014-01-05 02:11:18 责任编辑: Author_N1

 

这样的一个SQL需求你们遇到过吗?
今天要实现一个功能,查询一个表字段中相近的词,没有指定需要查询的词,比如有一张表中有个字段中有111,222,2,333,1那么就需要查询出111,1,222,2这4列,因为333没有相近的词所以不能查询出来。
like 跟 instr 还有正则都需要匹配具体的条件,而这个不存在指定的条件。想利用sql语句来解决,希望高手给点意见。

建表语句如下:


              
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
                                  FROM test_col)
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6750/
本文WWW.DOC100.NET DOC100.NET版权所有。