pl sql 中 利用查询出来的数据 作为 查询结果的 表 列名 比如说 查询出来的数据是 科目 分数 语文 22 数学

作者&投稿:衡阮 (若有异议请与网页底部的电邮联系)
如何用PL/SQL查询我的oarcle数据库里有多少个表,每个表都叫什么名~

首先你要有一个登陆用户,根据这个用户有3个查看表信息数据字典,分别是
ALL_TABLES USER_TABLES DBA_TABLES
如果你的用户有DBA权限,那么可以
SELECT * FROM DBA_TABLES那么可以查看数据库所有的表,不过最好带上WHERE条件,指定要查找的范围,要不结果很大的。

ALL_TABLES的话,SELECT * FROM ALL_TABLES查找的是用户下的所有表和授权该用户访问的所有表。

USER_TABLES的话,SELECT * FROM USER_TABLES查找的是用户下的所有表。

你可以用
SELECT * FROM USER_TABLES
然后对查到的表名,比如EMP,用
DESC EMP
查看表结构
然后可以用
SELECT * FROM EMP WHERE rownum < 10;
查看里面的10条信息,看下大概内容;

当然还有别的COL的数据字典,OBJECT数据字典等等,或者你进企业资源管理器进可视化界面可以直接看用户下的所有对象了。

1.查询所有表的表名: select table_name from user_tables
解释:从系统表user_tables中可以查找出所有的表名字。
2.查询表中的所有列名:desc table tablename(表名)。
解释:通过desc (描述)tablename即可查找出表中的所有字段。
3.查询所有数据:select * from tablename t。
解释:通过select 命令可以从tablename 中查找出所有的表数据。

这个涉及到的知识是,行转列。
CREATE TABLE t(NAME VARCHAR(10), SUBJECT VARCHAR(10), SCORE INT)

INSERT INTO t values ('张三','语文',60)
INSERT INTO t values ('李四','数学',70)
INSERT INTO t values ('王五','英语',80)
INSERT INTO t values ('王五','数学',75)
INSERT INTO t values ('王五','语文',57)
INSERT INTO t values ('李四','语文',80)
INSERT INTO t values ('张三','英语',100)

SELECT * FROM t

select NAME,
sum(case SUBJECT when '数学' then SCORE else 0 end) as '数学',
sum(case SUBJECT when '英语' then SCORE else 0 end) as '英语',
sum(case SUBJECT when '语文' then SCORE else 0 end) as '语文'
from t
group by NAME
其中,两个Name要相同。如果是id就都是id。

应该还有一个是学生的ID之类的参数吧
SELECT SId,
MAX(CASE Subject WHEN '语文' THEN Score ELSE 0 END) AS '语文',
MAX(CASE Subject WHEN '数学' THEN Score ELSE 0 END) AS '数学',
MAX(CASE Subject WHEN '英语' THEN Score ELSE 0 END) AS '英语'
FROM [StudentScores]
GROUP BY SId

select (select 分数 from 表 where 科目='语文') 语文,
(select 分数 from 表 where 科目='数学) 数学,
(select 分数 from 表 where 科目='英语') 英语
from dual


峄城区15948982845: pl sql 中 利用查询出来的数据 作为 查询结果的 表 列名 比如说 查询出来的数据是 科目 分数 语文 22 数学 -
寇狐天香: 应该还有一个是学生的ID之类的参数吧 SELECT SId,MAX(CASE Subject WHEN '语文' THEN Score ELSE 0 END) AS '语文',MAX(CASE Subject WHEN '数学' THEN Score ELSE 0 END) AS '数学',MAX(CASE Subject WHEN '英语' THEN Score ELSE 0 END) AS '英语' FROM [StudentScores] GROUP BY SId

峄城区15948982845: pl sql调用从表中查询到的字段内容 -
寇狐天香: 根据tx值,从表中select出相应的txl()字段的内容进一个变量,比如aaa,然后 execute immediate aaa; 就可以了.

峄城区15948982845: oracle 问题使用pl sql手动更改查询出来的数据 -
寇狐天香: select后面加上rowid地址列就可以修改数据了.如下面语句:select b.*,rowid from b where zd=(select a.sx from a,c where a.gdid=c.gdid and a.name='kk');

峄城区15948982845: pl - sql查询出来的数据怎么才能修改啊
寇狐天香: PL/SQL查询出来的数据要想修改,那就是用: --可更新的游标: --for update 说明是为了更新才使用的这个游标 --current of c 是更新当前这条记录,当前游标指向哪条记录上,就更新哪一条 declare cursor c is select * from emp for update; begin ...

峄城区15948982845: PL/SQL中 如何在字符串中提取数字 ? -
寇狐天香: select regexp_substr('水库新村332号','[0-9]+' ) from dual;--用正则表达式取出数字 select regexp_substr('水库新村332号','[[:digit:]]+') from dual;

峄城区15948982845: PL/SQL提取某个字段第一个出现的数字.例如从'商501啊啊'中提取出'5',要求提取出的值为int型. -
寇狐天香: 两种方法 --1、translate select substr(translate('商501啊啊','0123456789'||'商501啊啊','0123456789'),1,1) from dual;--2、正则表达式 select substr(regexp_replace('商501啊啊','[^0-9]'),1,1) from dual;

峄城区15948982845: 用SQL语句查询PL/SQL中的数据 -
寇狐天香: asset 是表名吧?select * from asset where end_time between sysdate -7 and sysdate -3或者 select * from asset where end_time >=sysdate -7 and end_time <= sysdate -3

峄城区15948982845: pl/sql导出全部查询结果到excel -
寇狐天香: 如图,不需要全部查询出来,执行sql之后点导出csv文件,用excel打开即可,是全部数据

峄城区15948982845: 在PL/SQL中如何用SQL语句查询数据库中所有表的数据数量? -
寇狐天香: select tablespace_name,sum(bytes)/1024/1024from dba_extents where tablespace_name='数据表空间名' group by tablespace_name; 单位:M

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网