[Q]怎么实现一条记录根据条件多表插入
[A]9i以上可以通过Insert all语句完成,仅仅是一个语句,如:
INSERT ALL
WHEN (id=1) THEN
INTO table_1 (id, name)
values(id,name)
WHEN (id=2) THEN
INTO table_2 (id, name)
values(id,name)
ELSE
INTO table_other (id, name)
values(id, name)
SELECT id,name
FROM a;
如果没有条件的话,则完成每个表的插入,如
INSERT ALL
INTO table_1 (id, name)
values(id,name)
INTO table_2 (id, name)
values(id,name)
INTO table_other (id, name)
values(id, name)
SELECT id,name
FROM a;
[Q]如何实现行列转换
[A]1、固定列数的行列转换
如
student subject grade
---------------------------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
……
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
……
语句如下:
select student,sum(decode(subject,'语文', grade,null)) "语文",
sum(decode(subject,'数学', grade,null)) "数学",
sum(decode(subject,'英语', grade,null)) "英语"
from table
group by student
2、不定列行列转换
如
c1 c2
--------------
1 我
1 是
1 谁
2 知
2 道
3 不
……
转换为
1 我是谁
2 知道
3 不
这一类型的转换必须借助于PL/SQL来完成,这里给一个例子
CREATE OR REPLACE FUNCTION get_c2(tmp_c1 NUMBER)
RETURN VARCHAR2
IS
Col_c2 VARCHAR2(4000);
BEGIN
FOR cur IN (SELECT c2 FROM t WHERE c1=tmp_c1) LOOP
Col_c2 := Col_c2||cur.c2;
END LOOP;
Col_c2 := rtrim(Col_c2,1);
RETURN Col_c2;
END;
/
SQL> select distinct c1 ,get_c2(c1) cc2 from table;即可
分享到:
相关推荐
5、SQL Test 在SQL Server Management Studio中进行数据库单元测试 6、SQL Data Generator 测试SQL Server数据库的数据生成器 7、SQL Packager 打包数据库以用于开发或者升级 8、SQL Dependency Tracker 可视化SQL ...
sql 语句学习 sql sql sqlsql 语句学习 sql sql sql
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
5. 测试和验证:在修改后,重新运行查询并监控其性能,确保优化效果符合预期。 在实际操作中,配合日志分析和性能调优的最佳实践,SQLTracker和SQLMonitor可以成为数据库管理员的强大助手,帮助他们确保数据库系统...
5. **模拟测试**:在不影响生产环境的前提下,通过模拟不同负载条件来测试SQL优化的效果。 6. **自动化优化**:对于一些常见性能问题,工具可能具备自动优化功能,例如自动添加索引、调整统计信息等。 在Oracle...
##通过sqlcmd执行sql文件 由于sql文件过大,超过了100M,再数据库的窗口执行,结果超出内存了,对于特别大的sql文件可以使用sqlcmd进行执行 ###1.打开cmd窗口 运行–cmd–进入到sql文件所在的文件夹。 如果是win7可...
5. **集成开发环境(IDE)支持**:SQL Prompt 9可以与Visual Studio、SQL Server Management Studio(SSMS)等常见IDE集成,提供无缝的工作体验。 6. **性能分析**:对于复杂的SQL查询,SQL Prompt 9可以提供执行...
• Sqljdbc.jar 需要 JRE 5 并支持 JDBC 3.0 API • Sqljdbc4.jar 需要 JRE 6 并支持 JDBC 4.0 API • Sqljdbc41.jar 需要 JRE 7 并支持 JDBC 4.1 API • Sqljdbc42.jar 需要 JRE 8 并支持 JDBC 4.2 API 每个...
5. 数据迁移:除了结构迁移,还要考虑数据的迁移。大容量数据的迁移可能需要分批进行,以减少对业务的影响。 6. 测试验证:迁移完成后,务必进行详尽的测试,确保所有功能在新的Oracle环境中正常工作。 总之,SQL ...
5. **模板与片段**:预定义的SQL模板和自定义代码片段,让我们能够快速访问常用的SQL语句,比如创建表、索引、视图等,进一步提高工作效率。 6. **版本控制集成**:Sql Prompt与常见的版本控制系统(如Git)无缝...
SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...
SQL Server 导入超大 SQL 脚本文件 SQL Server 是一种关系型数据库管理系统,广泛应用于各种行业。然而,在实际应用中,我们经常会遇到导入超大 SQL 脚本文件的问题。本文将介绍如何使用 osql 工具来导入超大 SQL ...
java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作...
5,启动SQLPrompt Keygen 5.3.x,注意在右侧选择Edition下来列表为:Professional。 6,复制SQLPrompt Keygen 5.3.x显示的序列号,粘贴到刚才弹出的对话框中,点击Activate,因为是断网的,系统会要求离线激活。 7,...
商城sql商城sql商城sql商城sql商城sql商城sql商城sql商城sql
《SQLMonitor:Oracle数据库SQL跟踪与分析利器》 在IT行业中,数据库的高效管理与优化是至关重要的。针对Oracle数据库,有一款名为SQLMonitor的工具,它专为跟踪和监控SQL语句而设计,帮助开发者和DBA们找出程序...
SQLQuery4.sql
sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包...
sqlserver实验五
java sql 工具类 java sql 工具类 java sql 工具类java sql 工具类 java sql 工具类 java sql 工具类java sql 工具类 java sql 工具类 java sql 工具类java sql 工具类 java sql 工具类 java sql 工具类java sql ...