tongcc

一.对数据库原有字段默认值的设置

1.删除原有字段默认值

alter table 表名 alter column 字段 drop default;
2..重写原有字段默认值
alter table 表名 alter column 字段 set default 0;

二.存储过程函数f_lookup(),计数函数count(1),GROUP BY只对SELECT后包含的字段有意义,日期函数TIMESTAMPDIFF(DAY,sys_shrq,SYSDATE())

2.1MySQL操作

//超过一天未做的事情
SELECT
f_lookup(1137,mdjlx) as mdjlx ,count(1) as ncount
FROM
表名 
WHERE

*******
and TIMESTAMPDIFF(DAY,sys_shrq,SYSDATE())>1
GROUP BY mdjlx;

 通过mdjlx group 之后,select 这边就不要出现mdjlx之外的字段了,没意义的,也不符合规范,你看到的这些其他字段的信息,只是对应mdjlx的第一条数据而已

2.2oracle数据库

SELECT
cname AS cname,
count( 1 ) AS ncount
FROM
表名a,表名b

WHERE

******

AND ROUND(TO_NUMBER(sysdate - to_date(jhdksrq,\'yyyy-mm-dd\'))) > 1
GROUP BY
cname

 

3..mysql包含之in

SELECT count(1) as count FROM 表名 a,表名 b WHERE a.主键 = b.外键  and a.字段 in(\'1\',\'2,\'3\') and  a.字段<> 1;

4..and与or的结合使用

update 表名SET 字段1= 99,s字段2 = 1 WHERE (字段3= \'1\' and 字段4 <> \'99\') OR (s字段5<>1 AND 字段6 = 99) ;

5..instr与in

update sr表名 set  sys_spzt = 0 where mhzsfz in (342623199709098090 , 3301026410244561245 ,  33010252 , 3301120252);

update sr_main_ww  set  sys_spzt = 0 where  INSTR(\'33011203022252,3301120252\', mhzsfz) >= 1

SELECT * FROM 表名 WHERE 字段1= 1 AND 字段2 = 0 and (字段3= \'\' or 字段4 is null or 字段5 = \'\' or 字段6 is null or 字段7= \'\' or 字段8 is null) and instr(\'db_jz,kn_jz,wb_jz\',字段9) > 0;

6..not in的使用

select 学生学号 from 表名 where  学生学号 not in(SELECT 学生学号 FROM  表名2 A,表名3 B WHERE A.主键= B.外键 AND A.学生学号= B.学生学号);

 

分类:

技术点:

相关文章:

  • 2021-12-27
  • 2022-02-26
  • 2021-09-20
  • 2022-12-23
  • 2022-01-07
  • 2022-01-14
  • 2021-10-24
猜你喜欢
  • 2021-11-24
  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
相关资源
相似解决方案