常用的sql语句

一条sql语句更新两个表的内容的sql语句

UPDATE urlName,siteName SET url=@url,name=@name WHERE siteName.zid=urlName.zid AND ID=@IN ;

select * from user_tab_comments;//查询表的注释

select * from user_col_comments;//查询列的注释

select * from all_tables;//查询此用户下面所有的表

select * from dba_col_comments where column_name like '%LINECATE%'and (owner like 'JTVRAIL' OR owner like 'MAXRAIL');//查询dba下面的哪个column的名字带有LINECATE

1.create table users(

    id number(20),

    name varchar2(10)

);

2.select username from dba_users;//查看当前的所有用户

3.

select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system

select * from all_users;  查看你能管理的所有用户!

select * from user_users; 查看当前用户信息 !

4.select * from dba_sys_privs;

select * from user_sys_privs;

查看用户对象权限

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

select s.grantee ,count(*) from dba_sys_privs s group by  s.grantee;--查询用户下面有多少个权限

5查看用户系统权限

select * from dba_sys_privs;

select * from all_sys_privs;

select * from user_sys_privs;

select * from dba_roles;//查看所有角色

查看用户所拥有的角色

select * from dba_role_privs;

select * from user_role_privs;

select username,default_tablespace from user_users;//查看当前用户的缺省表空间

6.

select extract(year from date'2011-05-17') year from dual;   

SELECT * from mf_report_define WHERE report_name = 'workCount';

SELECT * from mf_report_define_item WHERE report_id='2c90db9e47f66223014815228c5d0030';

SELECT * FROM workorderappr_tg;

CREATE TABLE A(

       ID NUMBER(2),

       NAME VARCHAR2(3)

);

CREATE TABLE B(

       ID NUMBER(2),

       AID NUMBER(2),

       NAME VARCHAR2(3)

);

INSERT into A values(3,'A3');

INSERT into B values(3,3,'B3');

SELECT * from A;

SELECT * from B WHERE B.AID = 1;

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID);

SELECT ID,NAME FROM A WHERE EXISTS(SELECT * FROM B WHERE B.AID = 1);

SELECT * from B FOR UPDATE;

F596EA0E65C747E3A53BE984F24E89A4

4.

comment on TABLE plan_pro IS '工电问题录入管理' ;更改数据库表的注释

select *   from    user_col_comments WHERE comments LIKE '%车间%';

select *   from    user_col_comments WHERE column_name LIKE '%TUR%';

//获取table_name和collumn_name包含GEN的字段

select * from User_Tab_Columns WHERE column_name LIKE '%GEN%';//表的注释

SELECT * from USER_COL_COMMENTS;//字段的注释

SELECT ut.TABLE_NAME,ut.COLUMN_NAME,uc.comments

from User_Tab_Columns ut,USER_COL_COMMENTS uc

WHERE ut.column_name LIKE '%GEN%' AND ut.TABLE_NAME = uc.table_name

AND ut.COLUMN_NAME = uc.column_name;

------------------------------------------------------

select *   from    user_col_comments WHERE column_name LIKE '%DEPT%';

select * from user_constraints c where c.constraint_type = 'R' and c.table_name='STAFFPOSITION'; 

------------------------------------------------------------------

1.create table users(

    id number(20),

    name varchar2(10)

);

2.select username from dba_users;//查看当前的所有用户

3.

select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system

select * from all_users;  查看你能管理的所有用户!

select * from user_users; 查看当前用户信息 !

4.select * from dba_sys_privs;

select * from user_sys_privs;

查看用户对象权限

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

5查看用户系统权限

select * from dba_sys_privs;

select * from all_sys_privs;

select * from user_sys_privs;

select * from dba_roles;//查看所有角色

查看用户所拥有的角色

select * from dba_role_privs;

select * from user_role_privs;

select username,default_tablespace from user_users;//查看当前用户的缺省表空间

6.

select extract(year from date'2011-05-17') year from dual;   

SELECT * from mf_report_define WHERE report_name = 'workCount';

SELECT * from mf_report_define_item WHERE report_id='2c90db9e47f66223014815228c5d0030';

SELECT * FROM workorderappr_tg;

CREATE TABLE A(

       ID NUMBER(2),

       NAME VARCHAR2(3)

);

CREATE TABLE B(

       ID NUMBER(2),

       AID NUMBER(2),

       NAME VARCHAR2(3)

);

INSERT into A values(3,'A3');

INSERT into B values(3,3,'B3');

SELECT * from A;

SELECT * from B WHERE B.AID = 1;

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID);

SELECT ID,NAME FROM A WHERE EXISTS(SELECT * FROM B WHERE B.AID = 1);

SELECT * from B FOR UPDATE;

F596EA0E65C747E3A53BE984F24E89A4

-----------------------------------------------------------------------------

--第一种方法: 查询dba_tab_columns

select COLUMN_NAME,DATA_TYPE,DATA_LENGTH  

from   dba_tab_columns

where  table_name =upper('表名')

order by COLUMN_NAME

--这种方法需要有DBA权限

--第二种方法: 查询user_tab_cols

select  COLUMN_NAME,DATA_TYPE,DATA_LENGTH  

from  user_tab_cols  

where table_name=upper('表名')

order by COLUMN_NAME

--这种方法只能查找当前用户下的表

--第三种方法: 查询ALL_TAB_COLUMNS

select distinct COLUMN_NAME,DATA_TYPE,DATA_LENGTH 

from ALL_TAB_COLUMNS

WHERE TABLE_NAME= upper('表名')

--这种方法可以查询所有用户下的表

---------------------------补充-------------------------------------------------------------

--增加字段

alter table cw_srcbpb 

add (SRCBPB_RJBPBL varchar2(100) );

alter table cw_srcbpb 

modify (SRCBPB_RJBPBL number(30,3) );

--Oracle查看所有表和字段

--获取表:

select table_name from user_tables; --当前用户的表       

select table_name from all_tables; --所有用户的表   

select table_name from dba_tables; --包括系统表

select table_name from dba_tables where owner='LBSP'; --获取用户***所拥有的表这里的用户名要记得是用大写的。

-- 获取表字段:其实这里是根据用户的权限来获取字段的属性(表名要大写)

select * from user_tab_columns where Table_Name='用户表';--获取用户表的所有字段还有字段的属性。

select * from all_tab_columns where Table_Name='用户表';--获取用户表的所有字段还有字段的属性。所属用户是***

select * from dba_tab_columns where Table_Name='用户表';--获取用户表的所有字段还有字段的属性。所属用户是***

--获取表注释:

select * from user_tab_comments

--user_tab_comments:table_name,table_type,comments

--相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。

--获取字段注释:

select * from user_col_comments--注意的是user_col_comments里面的column_name的字段的值在进行like的搜索的时候这个时候一定要大写

--user_col_comments:table_name,column_name,comments

--相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列。

--查询出用户所有表的索引

select   *   from   user_indexes

--查询用户表的索引(非聚集索引): 

select   *   from   user_indexes where   uniqueness='NONUNIQUE'

--查询用户表的主键(聚集索引): 

select   *   from   user_indexes where   uniqueness='UNIQUE' 

--查询表的索引

select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and

t.table_name='NODE'

--查询表的主键

select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and

au.constraint_type = 'P' AND cu.table_name = 'NODE'

--查找表的唯一性约束(包括名称,构成列): 

select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name=au.constraint_name and

cu.table_name='NODE'

--查找表的外键

select * from user_constraints c where c.constraint_type = 'R' and c.table_name='STAFFPOSITION'

--查询外键约束的列名: 

select * from user_cons_columns cl where cl.constraint_name = 外键名称

--查询引用表的键的列名:

select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名

--------------------------------------------------------------------------

查询主键的值

select * from user_indexes where uniqueness= 'UNIQUE' AND index_name LIKE '%pk%' OR index_name LIKE '%PK%';

-------------------------------------------

SELECT * from user_tab_cols;--这条sql语句能获取到表的所有的字段的值还有其类型等等

---------------------------------------------------------------------------------

上面编辑页面


上面红线除外的是列表页面,红线是查询页面

SELECT * FROM dba_tables WHERE table_name LIKE '%ASSETDEPT%';

SELECT COLUMN_NAME FROM User_Tab_Columns@gdlink WHERE table_name='ASSET' AND DATA_TYPE='VARCHAR2';

-----------------------------------------------------------------------------

dblink

tnsnames.ora


1.select * from TBSYS_PERMISSIONS where instr(smid, '2') > 0;//查询出TBSYS_PERMISSIONS的smid字段包含2的行数

select * from TBSYS_PERMISSIONS where smid like '%2%';//上面的instr属性类似于这句sql

首先想到的就是contains,contains用法如下:

?

1

select * from students where contains(address, 'beijing')

但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列没有建立索引,那么就会报错。

DB2当前的时间减去一天的时间

SELECT SYSDATE - 1 DAY FROM DUAL


WITH WORKERS AS(   

  SELECT 'DOM1' DEPT, 'ZHANGSAN' NAMES , 23 AGE, 4000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM1' DEPT, 'LISI' NAMES     , 35 AGE, 9000 SALARIES FROM DUAL UNION ALL  

  SELECT 'DOM1' DEPT, 'ZHANGCHEN' NAMES, 35 AGE, 9000 SALARIES FROM DUAL UNION ALL 

  SELECT 'DOM1' DEPT, 'QIANSI' NAMES   , 35 AGE, 4000 SALARIES FROM DUAL UNION ALL 

  SELECT 'DOM2' DEPT, 'WANGWU' NAMES   , 26 AGE, 6500 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM2' DEPT, 'MALIU' NAMES    , 28 AGE, 6000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM2' DEPT, 'ZHAOQI' NAMES   , 26 AGE, 5000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM1' DEPT, 'LIBA' NAMES     , 23 AGE, 3000 SALARIES FROM DUAL    

SELECT S.NAMES,S.SALARIES,S.NAMES,DEPT, ROW_NUMBER() OVER(PARTITION BY DEPT ORDER BY SALARIES DESC)RANK FROM WORKERS S; 

上面的PARTITION BY DEPT是以DEPT分组然后在这一组内进行排序,正如上面的DOM1分为1,2,3,4,5,下面的DOM2分为一组1,2,3

ROW_NUMBER()逐个增加一

WITH WORKERS AS(   

  SELECT 'DOM1' DEPT, 'ZHANGSAN' NAMES , 23 AGE, 4000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM1' DEPT, 'LISI' NAMES     , 35 AGE, 9000 SALARIES FROM DUAL UNION ALL  

  SELECT 'DOM1' DEPT, 'ZHANGCHEN' NAMES, 35 AGE, 9000 SALARIES FROM DUAL UNION ALL 

  SELECT 'DOM1' DEPT, 'QIANSI' NAMES   , 35 AGE, 4000 SALARIES FROM DUAL UNION ALL 

  SELECT 'DOM2' DEPT, 'WANGWU' NAMES   , 26 AGE, 6500 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM2' DEPT, 'MALIU' NAMES    , 28 AGE, 6000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM2' DEPT, 'ZHAOQI' NAMES   , 26 AGE, 5000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM1' DEPT, 'LIBA' NAMES     , 23 AGE, 3000 SALARIES FROM DUAL    

)

SELECT S.NAMES, DEPT, S.SALARIES, DENSE_RANK() OVER(PARTITION BY DEPT ORDER BY SALARIES DESC)RANK FROM WORKERS S;

DENSE_RANK()重复连续 DENSE_RANK()重复连续  DENSE_RANK()重复连续

WITH WORKERS AS(   

  SELECT 'DOM1' DEPT, 'ZHANGSAN' NAMES , 23 AGE, 4000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM1' DEPT, 'LISI' NAMES     , 35 AGE, 9000 SALARIES FROM DUAL UNION ALL  

  SELECT 'DOM1' DEPT, 'ZHANGCHEN' NAMES, 35 AGE, 9000 SALARIES FROM DUAL UNION ALL 

  SELECT 'DOM1' DEPT, 'QIANSI' NAMES   , 35 AGE, 4000 SALARIES FROM DUAL UNION ALL 

  SELECT 'DOM2' DEPT, 'WANGWU' NAMES   , 26 AGE, 6500 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM2' DEPT, 'MALIU' NAMES    , 28 AGE, 6000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM2' DEPT, 'ZHAOQI' NAMES   , 26 AGE, 5000 SALARIES FROM DUAL UNION ALL   

  SELECT 'DOM1' DEPT, 'LIBA' NAMES     , 23 AGE, 3000 SALARIES FROM DUAL    

)

SELECT S.NAMES, DEPT, S.SALARIES, RANK() OVER(PARTITION BY DEPT ORDER BY SALARIES DESC)RANK FROM WORKERS S;

RANK()重复不连续,  RANK()重复不连续,  RANK()重复不连续

★:RANK()重复不连续      DENSE_RANK()重复连续

★//查询连续两个小时的AQI>=500的数据,而且查询出爆表时长和爆表次数

SELECT AREA,F.CITYCODE,SUM_HOUR AS AQIBBSC,CNT_HOUR AS AQICXBBCS FROM (

SELECT AREA,E.CITYCODE,SUM_HOUR,CNT_HOUR,C.LONGITUDE,C.LATITUDE,

ROW_NUMBER() OVER (PARTITION BY E.AREA ORDER BY E.AREA DESC) AS RN

FROM (

SELECT AREA,D.CITYCODE,SUM(HOUR_CNT) SUM_HOUR,COUNT(*) CNT_HOUR

FROM (

SELECT AREA,C.CITYCODE,HOURSDIF,COUNT(*) HOUR_CNT

 FROM (

SELECT AREA,B.CITYCODE,

HOUR(ATIMEPOINT)-HOUR(BTIMEPOINT) + (DAYS(ATIMEPOINT) - DAYS(BTIMEPOINT)) * 24 -ROWNUM AS HOURSDIF

FROM (

SELECT TIMEPOINT ATIMEPOINT,AREA,A.CITYCODE,(

SELECT TIMEPOINT

FROM DSJYDD.AIR_CITYHOURAQI_PUBLISH B WHERE AQI >= 500

AND TO_CHAR(TIMEPOINT,'YYYY-MM') >= '2017-10' AND TO_CHAR(TIMEPOINT,'YYYY-MM') <= '2018-03'

AND B.CITYCODE = A.CITYCODE

AND ROWNUM = 1

) BTIMEPOINT

FROM DSJYDD.AIR_CITYHOURAQI_PUBLISH A

WHERE AQI >= 500

AND TO_CHAR(TIMEPOINT,'YYYY-MM') >= '2017-10' AND TO_CHAR(TIMEPOINT,'YYYY-MM') <= '2018-03'

AND A.CITYCODE IN ('110000','120000','130100','130200','131000','130600','130900','131100','130500','130400','140100'

,'140300','140400','140500','370100','370300','370800','371400','371500','371600','371700','410100','410200'

,'410500','410600','410700','410800','410900')

) B

ORDER BY AREA

) C

GROUP BY AREA,C.CITYCODE,HOURSDIF

HAVING COUNT(HOURSDIF) > 1

) D

GROUP BY AREA,CITYCODE

ORDER BY AREA

) E

INNER JOIN DSJYDD.POINT_INFO C

ON E.CITYCODE = C.CITYCODE

GROUP BY AREA,SUM_HOUR,CNT_HOUR,C.LONGITUDE,C.LATITUDE,E.CITYCODE

) F

WHERE RN = 1


DB2备份表的操作

1)创建一个备份表

CREATE TABLE T_PUBLIC_NOTICE_BACKUP LIKE T_PUBLIC_NOTICE

2)COPY数据到备份表

INSERT INTO T_PUBLIC_NOTICE_BACKUP SELECT * FROM T_PUBLIC_NOTICE


msyql没有错误:

select a,b,a-b from (

select count(*) a,(select count(*) from stan_organization where rgdt is not null) b from stan_organization) t;

oracle要这样写,mysql也支持这样写:

select a.num,b.num,a.num - b.num from

(select count(*) num from stan_organization) a,

(select count(*) num from stan_organization where rgdt is not null) b;


select 5+6,5+null from dual

select 5-6 from dual

select 5*6 from dual

select 5/6 from dual

select sysdate-sysdate from dual; 


mysql数据库支持

INSERT INTO STUDENT SET SID = 4, SNAME = '赵七',SAGE = '29', SADDRESS = '华信路4号',SDESCRIPT = '12',NUM = 7

这种语句插入数据 

//mysql的between and包含左边也包含右边

select count(*) from calendar where day between '2021-01-01' and '2021-01-04';


SELECT `day`, holiday, dow FROM test.calendar;

update calendar set holiday = 1 where day between '20211001' and '20211007';

select * from calendar where day between '20210501' and '20210505';

update calendar set holiday = 2 where day = '20211009';

select `day`, holiday, dow from test.calendar where holiday in (0,2) or dow not in (6,7);

select `day`, holiday, dow from test.calendar where holiday = 2

union all

select `day`, holiday, dow from test.calendar where holiday = 0 and dow not in (6,7);

select `day`, holiday, dow from test.calendar where holiday in (0,2) and dow not in (6,7);

select `day`, holiday, dow from test.calendar where holiday = 0;

select `day`, holiday, dow from test.calendar where holiday = 1;

select `day`, holiday, dow from test.calendar where holiday = 2;

create table stan_workday (

  id int primary key auto_increment comment '主键',

  `workday` date default null  comment '工作日'

) engine=myisam default charset=utf8mb4

insert into stan_workday(workday)   

select  day from test.calendar where holiday in (0,2) and dow not in (6,7); 

select * from stan_workday;

delete from stan_workday;

drop table stan_workday;

create table stan_workday (

  `workday` date default null  comment '工作日'

) engine=myisam default charset=utf8mb4

select * from stan_workday;

insert into stan_workday(workday)  

select  day from test.calendar where holiday in (0,2) and dow not in (6,7);

alter table stan_workday drop primary key;

//每次重置主键从哪个开始,记住是当前最大值的下一个,不能设置比当前有的最大值小

alter table stan_workday auto_increment=251;

alter table stan_workday modify id int;

//获取类似与oracle的rownum那样的从1开始的列

select @rownum:=@rownum+1 as rownum, stan_workday.*

from (select @rownum:=0) r, stan_workday;

//设置值减去250的值又是从1开始了

update stan_workday set id=

select rownum from (

select @rownum:=@rownum+1 rownum

from (select @rownum:=0) r, stan_workday s) t;

update stan_workday set id=id - 250;

//加入对应的值

insert into stan_workday(workday)  

select  day from test.calendar where holiday in (0,2) and dow not in (6,7);

drop table stan_workday;

alter table stan_workday auto_increment =  1; 

select id,workday from stan_workday;

delete from stan_workday;

update stan_workday set id = null;


select id, workday from test.stan_workday;

alter table stan_workday add old_id int(11) not null;

update stan_workday set old_id = id;

alter table stan_workday drop id;

alter table stan_workday add id int primary key auto_increment comment '主键';

update stan_workday set id = old_id;

select * from test.stan_workday;

//当mysql的自增的主键由于删除数据断开不连续的时候,如果原来的主键没有作用,这个时候要删除原来的列,

然后重新创造一个相同字段的列就是了,然后把这列赋值成主键自增不为空就是了!

要是原来的主键有用就是建立一个字段把原来的字段更新成新建的这个字段,然后把对应的别的表的外键更新成对应的主键就是了,这个时候再删除原来的那个旧的列就是了!

update demo as a,其它相关联的表名 as b set b.aid=a.id where b.aid=a.old_id;

alter table stan_workday drop id;

alter table stan_workday add id int(10) not null;

alter table stan_workday modify column id int(10) not null auto_increment, add primary key (id);


select id, workday from test.stan_workday;

alter table stan_workday add old_id int(11) not null;

update stan_workday set old_id=id;

alter table stan_workday drop id;

alter table stan_workday add id int primary key auto_increment comment '主键';

update stan_workday set id=old_id;

select * from test.stan_workday;

alter table stan_workday drop id;

alter table stan_workday add id int(10) not null;

alter table stan_workday modify column id int(10) not null auto_increment, add primary key (id);


//记住数据库一对多这种关系非常常用,要完全明白并且了解这种关系,就是要看条件,一定要看出是谁的条件,过滤的哪个表,然后判断是不是一条数据,对面是不是多条数据,这样就清楚一对多的关联关系了!

select a.inp_code,a.col_code,b.col_alias,b.col_name,b.vis_width,b.enb_ord,b.edt_typ

from hnd_inp_view a,hnd_inp_itm b

where a.inp_code=b.inp_code and a.col_code=b.col_code;

分析关系性数据库最重要的指标就是要抓住一端是定的,一端是变的就能成功抓住关系型数据库的核心问题了,就是这样的,这就是一对多的关系型数据库的最重要的核心指标了,就是这样的,做事情也是这样的,你总要有个指标,有个目的,你的目的再怎么变化也是定的!


oracle 这样的写法,查询出每一列多少的数据

select 1,(select count(*) from DIC_BUSI_COMMON where type = 'WTVC' and code = 'A'),

(select count(*) from DIC_BUSI_COMMON where type = 'CTVC_ORI') from dual;


mysql 这样的写法,查询出每一列多少的数据,也可以不写后面的from dual同样查出那样多的数据

select 1,(select count(1) from test.bas_region where id = '1'),

(select count(1) from test.bas_region) from dual;


//having count(distinct a.csnm) >= 5这里记住了统计的什么就是having  count(distinct a.csnm) >= 5,当时记住的是一定要distinct因为统计的不是重复的客户数,更是不要写成count(*)这样统计的是行数了,就完全不一样了!

select a.csnm,b.name,b.num from stan_person a,stan_contract b,stan_apply_contract c

where a.csnm = c.csnm and b.code = c.bstp and a.cmbl is not null

and a.ctst = 'N' and (a.rgdt <= '20211231' or a.rgdt is null)

group by a.cmbl having count(distinct a.csnm) >= 5

union

select a.csnm,b.name,b.num from stan_person a,stan_contract b,stan_trust_contract c

where a.csnm = c.csnm and b.code = c.bstp and a.cmbl is not null

and a.ctst = 'N' and (a.rgdt <= '20211231' or a.rgdt is null)

group by a.cmbl having count(distinct a.csnm) >= 5;

单上面就是一个表的时候having count(*) >= 5没有任何问题,但是多表关联的时候,这个时候就是要数统计的哪个值去重就行了having count(distinct a.csnm) >= 5//这个数的就是不重复的客户数


select * from taccount t where regexp_like(t.vc_code, ‘[a-zA-Z]’);//查询vc_code是不是含有英文大小写字母


select civt from stan_person where

(civt like '%*%' or civt like '%?%' or civt like '%!%' or civt like '%&%' or civt like '%¥%'

or civt like '%$%' or civt like '%/%%' or civt like '%^%' or civt like '%#%' or civt like '%/%'

or civt like '%@%' or civt like '%"%' or civt like '%;%' or civt like '%:%' or civt like '%>%'

or civt like '%<%' or civt like '%]%' or civt like '%[%' or civt like '%}%' or civt like '%{%'

or civt like '%-%' or civt like '%=%' or civt like '%+%' or civt like '%/_%' or civt like '%\%'

or civt like '%|%' or civt like '%。%' or civt like '%、%' or civt like '%?%' or civt like '%’%'

or civt like '%‘%' or civt like '%“%' or civt like '%”%' or civt like '%~%' or civt like '%`%')

and (length(ctid)<>lengthb(ctid) or regexp_like(ctid,'[a-zA-Z]'))


select translate('1212中国2323','0123456789'||'1212中国2323','0123456789') from dual;

select regexp_replace('23456中国3-00=.,45','[^0-9]') from dual;

--监控短信内容包含单引号

select e.* from t_cc_l2_sms_send  e

where e.act_start_dttm > sysdate - 60/1440

and e.sms_type_cd ='100' and e.sms_content like '%''%'

and rownum = 1需要双写单引号即可!

2.如何查询的某一个字段中包含下划线【_】

--用户表 120402

select *  from t_cc_l2_employee e where  e.account_no like   '%\_%' escape '\'

order by e.crt_dttm desc

3.如何查询某一个字段中包含百分号【%】

select * from t_cc_l3_property_log p

where p.log_type ='发短信' and p.case_no like '%\%%' escape '\'


//下面这样写会包含那些rtid为null的客户,因为同是null的客户大于5的也算里面

select p.csnm, count(r.rtid) from stan_organization p,stan_relation r

where p.csnm = r.csnm and p.rgdt <= '20210630' and p.ctst = '1'

and r.rtid is not null and p.cstp = '2' and p.chnl = '3' and r.rltp = 'C01' 

group by r.rtid having count(r.rtid) >= 5;

要是排除null的应该加上 and r.rtid is not null

select p.csnm, count(distinct p.csnm) from stan_organization p,stan_relation r

where p.csnm = r.csnm and p.ctst = 'N' and r.rtid is not null

and p.cstp = '2' and r.rltp = 'C01' group by r.rtid

having count(distinct p.csnm) >= 5;


equals()适用于list,set,map,甚至是里面顺序相反了,但是要类型一致,count返回的是bigDecimal类型,数据库里面取的是String类型,这个时候要全部toString()之后再equals()比较,这样才能相等!

select dbms_lob.substr(content,50,1)||dbms_lob.substr(content,50,51)||

dbms_lob.substr(content,50,101)||dbms_lob.substr(content,50,151)

||dbms_lob.substr(content,50,201)||dbms_lob.substr(content,50,251)

||dbms_lob.substr(content,50,301)||dbms_lob.substr(content,50,351)

||dbms_lob.substr(content,50,401)||dbms_lob.substr(content,50,451)

as a from stan_diligence where id = 829;

select xmlagg(xmlparse(content a.INVENTORY_ID||',') order by a.P0670_ID).getclobval()

from D_INVENTORY_BATCHSUB a WHERE a.P0670_ID=19100800000001;

select xmlagg(xmlparse(content dbms_lob.substr(content,1000,1) || '')).getclobval()

|| xmlagg(xmlparse(content dbms_lob.substr(content,1000,1001) || '')).getclobval()

as a from stan_diligence where id = 835;

select xmlagg(xmlparse(content dbms_lob.substr(content,1000,1) || '') order by id).getclobval()

|| xmlagg(xmlparse(content dbms_lob.substr(content,1000,1001) || '') order by id).getclobval()

as a from stan_diligence;

dbms_lob.substr(content,32)

select (xmlparse(content dbms_lob.substr(content,500,1) || '').getclobval()

|| xmlparse(content dbms_lob.substr(content,500,501) || '').getclobval()

|| xmlparse(content dbms_lob.substr(content,500,1001) || '').getclobval()

|| xmlparse(content dbms_lob.substr(content,500,1501) || '').getclobval())

as content from stan_diligence;

select dbms_lob.substr(content) as a from stan_diligence where id = 829;

select * from stan_diligence order by id desc;

select * from (select ROWNUM sid, t.* from

(select id, csnm, cstp, type, attach_path, attach_name, status, remark, create_time, creator, update_time, updater, mbrc,

dbms_lob.substr(xmlparse(content dbms_lob.substr(content,1000,1) || '').getclobval()) as subcontent1,

dbms_lob.substr(xmlparse(content dbms_lob.substr(content,1000,1001) || '').getclobval()) as subcontent2

from stan_diligence where csnm= #{CSNM}


select a.id,listagg(a.email, ',') within group (order by a.id) email,

 listagg(b.role_id, ',') within group (order by a.id) roleId

 from sys_user a,sys_user_role b

 where a.id = b.user_id and a.email is not null and b.role_id in (2,3,4)

  group by a.id


select a.userid,a.roleid,b.real_name as realname,b.email from (    

          select user_id as userid,listagg(role_id, ',') within group (order by user_id) as roleid

          from sys_user_role a where a.user_id in (select user_id from sys_worktips)

          group by user_id) a,sys_user b where a.userid = b.id and a.roleid != '1' and b.email is not null


left join的时候要是直接的连接右边的表然后加上where过滤条件,这个时候会过滤掉不是where的数据,这个时候应该在右边的表上加上过滤条件当成一个表然后关联,这样才能把关联的数据和对应字段是null的数据都是关联出来了,这样做就是对的!


<select id="getDeptInfo" resultType="Map">

 select a.deptcode,b.name,a.userids from

 (select dept_code as deptcode,listagg(id, ',') within group (order by dept_code) as userids from sys_user

 where dept_code is not null and state = '1' group by dept_code) a,sys_unit b

 where a.deptcode = b.code

 </select>

上面的查询条件计算出一个部门下面有多少个用户,用户用,隔开

注意的是强转能避免空指针,比toString()方法好多了,尽量的强转,避免不必要的麻烦,记住了就是了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/721348.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot快速入门-上

Apache Tomcat Apache Tomcat是一个开源的Servlet 或 web容器&#xff0c;它实现了Java Servlet、JavaServer Pages (JSP)、Java Unified Expression Language (JUEL) 和 Java WebSocket 规范。 使用 官网下载 安装:绿色版 , 直接解压 卸载:直接删除目录 改编码: # conf/l…

强得离谱,AI音乐的 Stable Diffusion: MusicGen

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

烂笔头笔记:为JDK安装Charles证书,让你的请求能够像在浏览器中那样被抓包

为什么要为JDK安装Charles证书 众所周知&#xff0c;https就是为了防止中间过程被拦截从而导致数据泄密的。若强行加入Charles代理&#xff0c;数据被解密后再被其重新加密&#xff0c;数据已经被“破坏”&#xff0c;客户端从而拒绝建立连接或解析内容。 #mermaid-svg-ksLo5W…

安装,管理程序

文章目录 Linuxd应用程序基础应用程序与系统命令的关系 典型应用程序目录常见的软件包装类型 rpm软件包管理工具RPM软件包rpm命令格式查询rpm软件包信息查询已安装的查询未安装的 安装或升级rpm软件卸载指定rpm软件辅助选项 维护RPM数据库解决软件包依赖关系方法 源代码编译安装…

[面试题]缓存

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis 什么是缓存&#xff1f;…

MySQL数据库入门

1、MySQL概述 MySQL官方网站 https://www.mysql.com/downloads/ MySQL被Oracle公司收购了&#xff0c;作者又重新编写了一个开源的数据库管理系统&#xff0c;Mariadb 2、MySQL产品&版本 2、数据库在网站架构中的角色 LAMP LNMP网站架构 3、安装MySQL-基于yum 查…

【网络编程】套接字的多种可选项

可以看出&#xff0c;套接字可选项是分层的。IPPROTOIP层可选项是IP协议相关事项IPPROTO TCP层可选项是TCP协议相关的事项&#xff0c;SOLSOCKET层是套接字相关的通用可选项 getsockopt&&setsockopt #include <sys/socket.h> int getsockopt(int sock, int lev…

IO流..

1.IO流-->用于读写文件中的数据 2.IO流的分类 import java.io.FileOutputStream; import java.io.IOException;public class Stream {public static void main(String[] args) throws IOException{FileOutputStream fosnew FileOutputStream("abc\\a.txt");fos.w…

docker容器中连接宿主机mysql数据库

最近要在docker中使用mysql数据库&#xff0c;首先考虑在ubuntu的镜像中安装mysql&#xff0c;这样的脚本和数据库都在容器中&#xff0c;直接访问localhost&#xff1a;3306&#xff0c;脚本很简单&#xff0c;如下&#xff1a; import pymysql# 建立数据库连接 db pymysql.…

了解Nest.js

一直做前端开发&#xff0c;都会有成为全栈工程师的想法&#xff0c;而 Nest 就是一个很好的途径&#xff0c;它是 Node 最流行的企业级开发框架&#xff0c;提供了 IOC、AOP、微服务等架构特性。接下来就让我们一起来学习Nest.js Nest.js官网地址 一&#xff0c;了解Nest Cli …

虚拟机怎么额外搭建两个Redis节点,配置多个 Redis 实例

前提条件 在开始之前&#xff0c;请确保你已经具备以下条件&#xff1a; 一台已安装 Redis 的虚拟机。虚拟机上已安装基本的 Linux 工具&#xff08;例如 FinalShell&#xff09;。 步骤二&#xff1a;配置额外的 Redis 实例 接下来&#xff0c;我们将配置两个新的 Redis 实…

Java——可变参数

一、可变参数 1、介绍 Java的可变参数&#xff08;Varargs&#xff09;是一种语法特性&#xff0c;允许一个方法接受不定数量的参数。可变参数的使用通过在参数类型后面添加省略号&#xff08;...&#xff09;实现。这使得方法在调用时可以传入不同数量的参数&#xff0c;而不…

Datakit管理openGauss6.0集群,监控运维超方便

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

Java开发的构建神器:Maven以及如何安装部署Maven

目录 一、Maven引言1.1 Maven的核心概念✍. POM (Project Object Model)✌. 依赖管理✍. 生命周期与构建阶段✌. 插件系统 1.2 Maven的工作流程✍. 读取POM文件&#xff1a;✌. 依赖解析&#xff1a;✍. 构建生命周期&#xff1a;✌. 插件执行&#xff1a;✍. 构建输出&#xf…

物联网技术-第4章物联网通信技术-4.1无线网络

目录 1. 无线通信概念 &#xff08;1&#xff09;有线与无线 &#xff08;2&#xff09;电磁波的频谱 &#xff08;3&#xff09;频段的划分 &#xff08;4&#xff09;调制与解调 &#xff08;5&#xff09;调制技术 &#xff08;6&#xff09;信道的复用 &#xff08;…

#QT(QCharts绘制曲线)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;绘制曲线图表 3.记录&#xff1a; 4.代码 pro QT core gui #加入以下代码引入charts QT charts greaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses depre…

“Git之道:掌握常用命令,轻松管理代码“

目录 1. 初始化和配置 2. 提交和更新 3. 分支和合并 4. 查看和比较 5. 远程仓库 6. 文件操作命令 1. 初始化和配置 git init&#xff1a;在当前目录初始化一个新的Git仓库git config&#xff1a;配置Git的全局或局部选项git clone&#xff1a;从远程仓库克隆一个本地副本…

全网最全 Kimi 使用手册,看完 Kimi 效率提升 80%

在当前AI文字大模型领域&#xff0c;ChatGPT4.0无疑是最强大。然而&#xff0c;最近最火爆的大模型非国产Kimi莫属。 相较于其它大模型&#xff0c;Kimi 最大的优势在于&#xff0c;超长文本输入&#xff0c;支持200万汉字&#xff0c;是全球范围内罕见的超长文本处理工具&…

数据结构与算法-字符出现的次数

问题描述 以下是这个找出字符串中字符串出现频率最多的字符。大家可以自行研究一下&#xff0c;题目不难&#xff0c;我今天尝试使用C语言来完成解答&#xff0c;但是在解答过程居然出现了一个意想不到的问题。可能是高级语言用多了&#xff0c;C语言某些函数的限制和风险忘记管…

携手精益生产培训机构,让职业发展更上一层楼!——张驰咨询

精益生产培训机构在职业发展中的关键作用不容忽视。对于许多初入职场或希望深化精益生产理解的从业者来说&#xff0c;这些机构如同一盏明灯&#xff0c;照亮了前行的道路。 首先&#xff0c;精益生产培训机构是知识的集中地。它们不仅提供了全面的理论框架&#xff0c;还涵盖了…