oracle如何互换列名,oracle数据库修改列名

oracle sql 调换两列数据

这个简单:

沁源ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

select

case when

(syddm=1 and id=1) or (syddm=2 and id=2)

then id

else syddm as syddm_t,

case when

(syddm=1 and id=1) or (syddm=2 and id=2)

then id

else syddm as id_t

from table_t;

你的问题不太明确,我只能是假设你的要求是,当syddm、id条件满足你所列出的任意条件时,原syddm列显示id值,原id列显示syddm值。

所以我的解决思路是使用case when来处理,当满足你的两个条件中的任意时,交换两列值。

oracle问题:请教一个关于无法更改表中某列的列名的问题

这种错误最可能出现的情况就是rown列名不存在

你desc mytable后,把那个字段拷出来,不会那个rown的那个圈是零吧?

仔细检查一下吧:)

oracle: ALTER TABLE 表名 RENAME COLUMN 列名 TO 新列名;更改单列列名。一次更改多列的语法是什么?

1、首先建表语法:Create table 表名,字段 1 数据类型 [default 默认值],字段 2 数据类型 [default 默认值],...字段 n 数据类型 [default 默认值]。

2、表删除语法:DROP TABLE 表名。

3、表的修改,在sql中使用alter,可以修改表,添加语法:ALTER TABLE 表名称 ADD(列名 1 类型 [DEFAULT 默认值]。

4、UPDATE(修改)全部修改:UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....局部修改:UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....WHERE 修改条件。

5、 最后DELETE(删除)语法 : DELETE FROM 表名 WHERE 删除条件。

oracle怎样修改视图的列名

不能象修改表那样直接改列名,只能是在定义视图的语句里写新的列名。

oracle 多列 列转行

Oracle 11g 行列互换 pivot 和 unpivot 说明在Oracle 11g中,Oracle 又增加了2个查询:pivot(行转列) 和unpivot(列转行)

参考:、 一下,网上有一篇比较详细的文档:

pivot 列转行

测试数据 (id,类型名称,销售数量),案例:根据水果的类型查询出一条数据显示出每种类型的销售数量。

?

123456789

create table demo(id int,name varchar(20),nums int);  ---- 创建表insert into demo values(1, '苹果', 1000);insert into demo values(2, '苹果', 2000);insert into demo values(3, '苹果', 4000);insert into demo values(4, '橘子', 5000);insert into demo values(5, '橘子', 3000);insert into demo values(6, '葡萄', 3500);insert into demo values(7, '芒果', 4200);insert into demo values(8, '芒果', 5500);

分组查询 (当然这是不符合查询一条数据的要求的)

?

1

select name, sum(nums) nums from demo group by name

行转列查询

?

1

select * from (select name, nums from demo) pivot (sum(nums) for name in ('苹果' 苹果, '橘子', '葡萄', '芒果'));

注意: pivot(聚合函数 for 列名 in(类型)) ,其中 in(‘’) 中可以指定别名,in中还可以指定子查询,比如 select distinct code from customers

当然也可以不使用pivot函数,等同于下列语句,只是代码比较长,容易理解

?

12

select * from (select sum(nums) 苹果 from demo where name='苹果'),(select sum(nums) 橘子 from demo where name='橘子'),       (select sum(nums) 葡萄 from demo where name='葡萄'),(select sum(nums) 芒果 from demo where name='芒果');

unpivot 行转列

顾名思义就是将多列转换成1列中去

案例:现在有一个水果表,记录了4个季度的销售数量,现在要将每种水果的每个季度的销售情况用多行数据展示。

创建表和数据

?

1234567

create table Fruit(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int); insert into Fruit values(1,'苹果',1000,2000,3300,5000);insert into Fruit values(2,'橘子',3000,3000,3200,1500);insert into Fruit values(3,'香蕉',2500,3500,2200,2500);insert into Fruit values(4,'葡萄',1500,2500,1200,3500);select * from Fruit

列转行查询

?

1

select id , name, jidu, xiaoshou from Fruit unpivot (xiaoshou for jidu in (q1, q2, q3, q4) )

注意: unpivot没有聚合函数,xiaoshou、jidu字段也是临时的变量

Oracle中怎么修改列名?

如果列名不适合,那么可以使用alter

table语句的rename

column子句改变列名。语法如下:

alter

table

table_name

rename

column

column_name

to

new_column_name;

你这一题该是

alter

text

rename

textpass

to

password

去试下!


本文标题:oracle如何互换列名,oracle数据库修改列名
网页网址:http://pwwzsj.com/article/dsgdoeh.html