同一个交叉表的动态SQL实现
DECLARE
TYPE list IS TABLE OF t_stu.project%TYPE INDEX BY BINARY_INTEGER;
project_list list;
v_pro_num NUMBER;
sql_str VARCHAR(255);
t_stu
SID SUBJECT SCORE
1 数学 99
1 英语 68
1 法律 79
2 数学 92
2 英语 72
2 法律 96
实现======
SID
数学
英语
法律
1
99
68
79
2
92
72
96
DECLARE
TYPE list IS TABLE OF t_stu.subject%TYPE INDEX BY BINARY_INTEGER;
subject_list list;
v_pro_num NUMBER;
sql_str VARCHAR(255);
BEGIN
SELECT COUNT(DISTINCT subject) INTO v_pro_num from t_stu;
sql_str := 'SELECT id ';
FOR v_idx in 1..v_pro_num LOOP
IF v_idx = 1 THEN
SELECT DISTINCT subject INTO subject_list(v_idx) from t_stu WHERE rownum = 1;
ELSE
SELECT subjectINTO subject_list(v_idx)
from (SELECT DISTINCT subject, rownum row_num from t_stu WHERE rownum < v_idx + 1)
WHERE row_num = v_idx;
END IF;
sql_str := sql_str || ', SUM(DECODE(subject,''' || subject_list(v_idx) || ''',score,0)) AS ' || subject_list(v_idx);
END LOOP;
sql_str := sql_str || ' from t_stu GROUP BY id';
DBMS_OUTPUT.PUT_LINE('sql--->' || sql_str);
EXEC IMMEDIATE sql_str;
&
相关文档:
--在日常维护,开发中常遇到写一系列结构类型的sql语句,很烦很累其实可以
--利用SQL*PLUS环境命令 生成脚本文件
set heading off --关闭列的标题
set feedback off --关闭反馈信息
  ......
怎么增加SQL Server连接数
1. 看操作平台的連接數是多少
控制台的授權看看
2. 進GENERAL看看SQL SERVER USERS CONNECTIONS
增大即可
sp_configure 'number of connection'
go ......
无论您是一位 SQL 的新手,或是一位只是需要对 SQL 复习一下的资料仓储业界老将,您就来对地方了!
- SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。
- 表格处理: SQL 如何被用来处理数据库中的表格。
- SQL语法: 这一页列出所有在这个教材中被提到的 SQL 语法
SQL SELECT
Store_Information 表格 ......
select top 每页显示的记录数 * from topic where id not in (select top (当前的页数-1)×每页显示的记录数 id from topic order by id desc) order by id desc
select top 每页显示的记录数 * from topic where id not in (select top (当前的页数-1)×每页显示的记录数 id from topic order by id desc) ......