ITPub博客

首页 > 数据库 > Oracle > 取出每个位置相同数值的列

取出每个位置相同数值的列

原创 Oracle 作者:pwz1688 时间:2014-09-15 15:36:24 0 删除 编辑
在itpub看到一贴子,要求取出表中某个列上所有位置相同数值的记录。如
表 num_test中,有以下记录:
insert into num_test values('11111');
insert into num_test values('2222');
insert into num_test values('33333');
insert into num_test values('11411');
insert into num_test values('16711');
insert into num_test values('18231');
insert into num_test values('666');
commit;
要取出11111,2222,33333,666这几行记录。收集了下贴中几种巧秒的方法,如下:

测试数据初始化如下:

点击(此处)折叠或打开

  1. SQL> create table num_test(
  2.   2 num_name number
  3.   3 );

  4. 表已创建。

  5. SQL> insert into num_test values(\'11111\');

  6. 已创建 1 行。

  7. SQL> insert into num_test values(\'2222\');

  8. 已创建 1 行。

  9. SQL> insert into num_test values(\'33333\');

  10. 已创建 1 行。

  11. SQL> insert into num_test values(\'11411\');

  12. 已创建 1 行。

  13. SQL> insert into num_test values(\'16711\');

  14. 已创建 1 行。

  15. SQL> insert into num_test values(\'18231\');

  16. 已创建 1 行。

  17. SQL> insert into num_test values(\'666\');

  18. 已创建 1 行。

  19. SQL> commit;

  20. 提交完成。

  21. SQL> select * from num_test;

  22.   NUM_NAME
  23. ----------
  24.      11111
  25.       2222
  26.      33333
  27.      11411
  28.      16711
  29.      18231
  30.        666

  31. 已选择7行。
方法一:
 

点击(此处)折叠或打开

  1. SQL> select * from num_test where replace(num_name,substr(num_name,1,1),\'\') is null;

  2.   NUM_NAME
  3. ----------
  4.      11111
  5.       2222
  6.      33333
  7.        666

方法二:

点击(此处)折叠或打开

  1. SQL> select * from num_test where mod(num_name,lpad(\'1\',length(num_name),\'1\'))=0;

  2.   NUM_NAME
  3. ----------
  4.      11111
  5.       2222
  6.      33333
  7.        666
方法三:


点击(此处)折叠或打开

  1. SQL> select * from num_test where regexp_replace(num_name,\'(.)\\1+\') is null;

  2.   NUM_NAME
  3. ----------
  4.      11111
  5.       2222
  6.      33333
  7.        666
方法四:


点击(此处)折叠或打开

  1. SQL> select * from num_test where lpad(substr(num_name,1,1),length(num_name),substr(num_name,1,1))=num_name;

  2.   NUM_NAME
  3. ----------
  4.      11111
  5.       2222
  6.      33333
  7.        666

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21251711/viewspace-1270048/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-30

  • 博文量
    106
  • 访问量
    736042