ORACLE中,怎么用SQL语句查询一个电话号码中含有连续7个字符都为“1”或者连续8个字符都为“1”的值

作者&投稿:令宁 (若有异议请与网页底部的电邮联系)
在oracle中 (比如用户进入一个百度知道,连续7天都登入账号 那怎么写连续7天的用户的SQL呢)~

select * from
(select t2.user
,length(max(t2.str))-length(replace(max(t2.str),';','')) times
from
(select t1.user
,sys_connect_by_path(trunc(t1.opdate),';') str
from
(select t.user
,trunc(t.time) opdate
,rank() over(partition by t.user order by trunc(t.time)) rn
from member t) t1
start with trunc(t1.opdate)=trunc(sysdate)
connect by t1.rn = prior rn+1
and t1.user = prior t1.user
and t1.opdate = prior t1.opdate+1) t2
group by t2.user) t3
where t3.times>=7
;
-- type(登录类型),我没用,你需要区分类型的话自己加上吧,分也少了点,所以没人给你写啊

尝试写一个,未必能用要测试的。
首先确定电话号码是字符型的,如果不是那么就转换一下。
然后用

select 电话号码,
case when 电话号码 ='6666666' then 1
when 电话号码 like '%6%6%6%6%6%6%' then 2
when 电话号码 like '%6%6%6%6%6%' then 3
when 电话号码 like '%6%6%6%6%' then 4
when 电话号码 like '%6%6%6%' then 5
when 电话号码 like '%6%6%' then 6
when 电话号码 like '%6%' then 7
else 8 end 带6的分组 from table
我这里假设是7位的电话号码,如果是八位可能出现66666666,那么前面就再加一个等于八个6的(记得是前面不是后面,如果是后面那么就出不来了),7个6的改为like语句。然后如果再想分组就根据标记(也就是1,2,3,4,5,6,7)分组就可以了。不过这个要测试的,我只是觉得这样可行。

CREATE TABLE test(
  NAME  varchar(10),
  TEL   varchar(20)
);


INSERT INTO test VALUES('张三',  '1301111111932');
INSERT INTO test VALUES('李四',  '15920203911');
INSERT INTO test VALUES('王五',  '1391111111102');
INSERT INTO test VALUES('张柳',  '029222222213');
INSERT INTO test VALUES('第二',  '291111119233');


如果你只查询 连续 7个1 的

那就是简单的

SQL> SELECT
  2   *
  3  FROM
  4   test
  5  WHERE
  6    TEL   LIKE  '%1111111%';

NAME                 TEL
-------------------- ----------------------------------------
张三                 1301111111932
王五                 1391111111102


如果你是要模糊的查询  连续7个   任意数字的, 也就是 7个1  , 或者 7个2 , 或者 7个3...

SQL> SELECT
  2    *
  3  FROM
  4    test
  5  WHERE
  6     REGEXP_LIKE(REVERSE(TEL), '(\d)\1\1\1\1\1\1');

NAME                 TEL
-------------------- ----------------------------------------
张三                 1301111111932
王五                 1391111111102
张柳                 029222222213


这个昨天不是回答了?正则表达式 你还问

http://zhidao.baidu.com/question/572628391?&oldq=1#answer-1441843378

只不过你没有选我的答案而已

select * from a where tel like '%1111111%';

使用like '%1111111%'


数据库连接信息中的设置位置是什么意思
可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。racle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可...

浅谈JDBC怎么连接数据库
JDBC怎么连接数据库一、连接各种数据库方式速查表下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。1、Oracle8\/8i\/9i数据库(thin模式)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();Stringurl="jdbcracle:thinlocalhost:1521rcl";\/\/orcl为数据库的SIDStringuser="test";Stringpassword...

jdbc 连接mysql时中的URL怎么写的
String url="jdbc:mysql:\/\/localhost:3306\/sample_db?user=root&password=your_password";例如:import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Connection;import java.sql.Statement; public class MysqlDemo { public static void main(Strin...

super junior中长的像女的那个叫什么?
你说的是金希澈..他长的让很多女的都惭愧..姓名:金希澈(KimHeeChul)(김희철)昵称:希大人、公主、灰姑娘、 教主(辛德瑞拉教)、金班长、樱桃君、金起伏 生日: 1983年 7月 10日(巨蟹座)学校 : 韩国尚济影像大学--观光英语翻译专业 血型: AB型 身高\/体重: 178Cm\/ 60...

仓储管理信息系统在库存管理中有什么作用
经济的全球化趋势要求信息化必须能够推动企业管理模式和商务模式与国际市场对接。一方面,中国企业要走向国际市场,其前提是采用与国际接轨的管理体系和商务模式;另一方面,大批跨国公司进入国内市场,中国企业要与之竞争,也要完善自己的管理体系和商务模式。而信息化在中国企业与国际接轨的过程中,在体制和...

西北地区基于3S技术野外地质工作管理与服务体系构建
软件资源:O racle10g或以上版本O racle客户端\/服务器、GSIGrid野外地质调查管理服务与安全保障系统-信息平台 BDServer、北斗应急保障系统站点配置工具MVEConfigGuide。 3.北斗应急态势保障系统运行情况 北斗应急态势保障系统部署完成后,课题组人员对系统的各项功能进行了测试与示范。系统运行正常,以下为部分功能使用截图。图...

仓储管理信息系统在库存管理中有什么作用
从最初的DOS平台到Windows、Unix平台,数据库从dBASE、FoxPro再到SQLServer、Sybase、0racle等大型数据库,系统结构也基本上建立在C\/S甚至B\/S结构上。借助于大型数据库系统的管理分析功能,财务管理软件在向更强的分析功能发展,也有的在向支持企业管理的方向发展,演变成ERP管理软件。财务软件从最初到当今经历了5个时期:...

财务管理在企业经营管理中起什么作用
从最初的DOS平台到Windows、Unix平台,数据库从dBASE、FoxPro再到SQLServer、Sybase、0racle等大型数据库,系统结构也基本上建立在C\/S甚至B\/S结构上。借助于大型数据库系统的管理分析功能,财务管理软件在向更强的分析功能发展,也有的在向支持企业管理的方向发展,演变成ERP管理软件。财务软件从最初到当今...

牙克石市19540584397: oracle数据库中如何用sql语句查出重复字段以及如何删除? -
充玛孚新: 查询可用group by语句,删除则用delete语句.1、创建测试表,插入测试数据:create table test(id int,name varchar2(20)); insert into test values (1,'张三'); insert into test values (1,'张三'); insert into test values (2,'李四'); insert into test ...

牙克石市19540584397: 如何使用sql语句,查询oracle的表注释等信息? -
充玛孚新: 使用sql语句,查询oracle的表注释等信息方法如下:一、Oracle 下读取表/字段的备注信息,Oracle 通过COMMENT ON TABLE / COMMENT ON COLUMN 追加表/字段的备注.1. COMMENT ON TABLE ,MR_DEPT,IS .2. COMMENT ON ...

牙克石市19540584397: oracle中如何执行sql语句 -
充玛孚新: 1.在SQL*PLUS下按回车不行是因为你在SQL语句结束时没有以;(分号)结尾,以分号结尾再按回车就可以了 2.如果常用的话,建议使用PL/SQL Developer,功能强,易使用

牙克石市19540584397: oracle中查询一个表的所有字段名以及属性的sql语句应该怎么写? -
充玛孚新: SELECT * FROM all_tab_columns t WHERE t.OWNER='OWNER_NAME' AND t.TABLE_NAME='TABLE_NAME' 或者SELECT * FROM user_tab_columns t WHERE t.TABLE_NAME='TABLE_NAME'

牙克石市19540584397: 怎样用sql语句查询oracle数据表的字段名及其数据类型 -
充玛孚新: 楼主您好 all_tab_columns all_tab_cols 或者all换成user 分别是column_name和data_type字段

牙克石市19540584397: ORACLE 快速查询数据SQL语句 -
充玛孚新: 单条匹配,没有索引也不准备建索引.只能靠并发来加快检索速度,最快的语句应该是:select /*+ full(A) parallel(A,10) */ * from A where b=c;理由有2:full table scan 时,oracle会一次读出多个block加快速度parallel指定并发10线程检索,当然如果允许,你指定20也可以.最好等于CPU个数. 不过还是建议在b列上建索引,这是最好的办法.

牙克石市19540584397: 怎么用sql语句查看oracle数据库里的所有表 -
充玛孚新: 查询系统表:select * from all_tables where table_name not in (select table_name from user_tables); 查询用户表:select * from user_tables;

牙克石市19540584397: oracle 中的 sql语句查询
充玛孚新: 1、 select emp.* from emp,(select deptno,avg(sal) avg1 from emp group by deptno)B where emp.deptno=B.deptno and emp.sal>B.avg1; 2、 select emp.*,B.avg1 平均工资 from emp,(select deptno,avg(sal) avg1 from emp group by deptno)B ...

牙克石市19540584397: oracle中查询所有表的sql语句怎么写 -
充玛孚新: select * from all_tables; 可以看到所有的表名和信息,如果你想一条语句查所有表里的数据,那没有这种方法.

牙克石市19540584397: 怎么用sql语句查询 oracle数据库 里有哪些表 -
充玛孚新: -- 查询你 当前用户下,有哪些表 SELECT * FROM user_tables-- 查询你 当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的] SELECT * FROM all_tables-- 查询当前数据库所有的表, 需要你有 DBA 的权限 SELECT * FROM dba_tables

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网