数据库常用写法,笔记难的SQL写法
来源:互联网 发布:python运维框架 编辑:程序博客网 时间:2024/06/18 06:28
1、sqlserver 中建立临时表存储数据,然后查询
select 种类,编号,时间,内容,创建时间, into TableBak from dbo.SLottery where 种类='3' order by ctime select * from TableBak drop table TableBak ; //这是一条SQL语句。
2、将行变成列。(去看看以前在银行做报表时候海波龙的列子)
![](http://my.csdn.net/uploads/201203/31/1333124545_4019.png)
代码
SELECT STDNAME, (CASE WHEN STDSUBJECT = '语文' THEN GRADE END) AS '语文', (CASE WHEN STDSUBJECT = '数学' THEN GRADE END) AS '数学' ,(CASE WHEN STDSUBJECT = '化学' THEN GRADE END) AS '化学' ,(CASE WHEN STDSUBJECT = '物理' THEN GRADE END) AS '物理' FROM TEMP_SC group by stdname;
----行列互换select t.* from temp_sc t;select sc.stdname, a.grade 语文, b.grade 数学, c.grade 物理, d.grade 化学 from (select distinct stdname from temp_sc) sc, (select stdname, grade from temp_sc where stdsubject = '语文') a, (select stdname, grade from temp_sc where stdsubject = '数学') b, (select stdname, grade from temp_sc where stdsubject = '物理') c, (select stdname, grade from temp_sc where stdsubject = '化学') d where sc.stdname = a.stdname and sc.stdname = b.stdname and sc.stdname = c.stdname and sc.stdname = d.stdname;
3、插入的方法
INSERT INTO COUNTER (NAME,CURRENTID) SELECT 'com.endplay.feeds.model.Schedule', NVL(MAX(SCHEDULE_ID),0) FROM SCHEDULE;
4、难点 :需要update多个数据,而这些符合条件的数据需要like出来。
方法 :先查出需要update的记录,拼装成为带%的字段,然后做为一个表。
update QRTZ_SIMPLE_TRIGGERS QST set REPEAT_COUNT = 0 where EXISTS ( select * from (select 'TRIGGER_' || groupId || '%' as triggers_name from group_ where liveGroupid = 0) GP where QST.TRIGGER_NAME like GP.triggers_name );5、删除重复
ORA-02437错误:创建表时没有添加主键,当表中已经存在很多重复数据时,再添加主键就会报这个错误。所以,设计表的时候一定要注意!
下面是这个错误的解决办法,先找出表中重复的数据,然后保留相同数据rowid最小的那一列
- select * from material_table
- where unid in (select unid from material_table
- group by unid having count(unid) > 1)
这里的unid 是主键列,即not null 那些你认为是主键的列,通过主键进行分组查找出记录大于1条的数据。
找到重复数据后进行删除
rowid 是 oracle自己的,是每一列的主键
- delete from material_table where unid in (select unid from material_table
- group by unid having count(unid) > 1) and rowid not in (select min(rowid)
- from material_table group by unid having count(unid)>1)
6、复制表结构
1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table table_name_new as select * from table_name_old where 1=2; 或者: create table table_name_new like table_name_old 3. 只复制表数据:如果两个表结构一样:insert into table_name_new select * from table_name_old 如果两个表结构不一样:insert into table_name_new(column1,column2...) select column1,column2... from table_name_old
- 数据库常用写法,笔记难的SQL写法
- DB2常用SQL的写法
- DB2常用SQL的写法
- 常用数据库 取前几条数据 sql写法
- 常用数据库 取前几条数据 sql写法
- 常用sql写法
- 常用数据库*DBC写法!
- js 常用写法笔记
- DB2 常用SQL的写法(转)
- 常用数据库的JDBC驱动程序写法
- 常用数据库URL地址的写法
- 常用数据库分页写法 myslq postgresql sql server Oracle
- 常用数据库取前10条sql语句写法
- 几种常用数据库(SQLServer Oracle db2 mysql等)分页SQL的写法总结
- 常用的Singleton写法
- 常用的几种单例写法
- 常用sql功能标准写法
- 常用数据库JDBC连接写法
- C#读取txt文档中乱码问题
- verilog仿真用的分层时间队列
- UDP数据包大小问题
- OSGI Bundle和Web容器加载类冲突问题的分析和解决
- fast cgi
- 数据库常用写法,笔记难的SQL写法
- 前端性能优化参考资料
- Android学习系列(5)--App布局初探之简单模型
- SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法
- ubuntu 所有的窗口都没有最大化,最小化按钮了
- 什么是Shell?
- [教程]HTC G17(EVO 3D)刷Root教程
- context:exclude-filter 与 context:include-filter
- 项目实施与IT服务