从oracle-sql中的特定列中删除整个数据

时间:2015-09-26 13:42:51

标签: sql oracle sql-delete

最近我开始学习Oracle-sql。我知道在DELETE命令的帮助下,我们可以删除一个特定的行。那么,是否可以仅使用DELETE命令从表中的特定列中删除整个数据。 (我知道通过将空值设置为整列来使用UPDATE命令,我们可以实现DELETE)的功能。

4 个答案:

答案 0 :(得分:15)

<强> DELETE

  

DELETE语句从指定的数据中删除整行   表格或视图

如果您要“删除”特定列中的数据,请更新它:

UPDATE table_name
SET your_column_name = NULL;

或列是NOT NULL

UPDATE table_name
SET your_column_name = <value_indicating_removed_data>;

您还可以使用DDL删除整个列:

ALTER TABLE table_name DROP COLUMN column_name;

答案 1 :(得分:2)

使用Invisible Type,来自 oracle 12cR2

ALTER TABLE LOG1
MODIFY operation  INVISIBLE

这比删除特定列更好。如果需要显示,可以通过使用VISIBLE列名称进行更改来恢复。

答案 2 :(得分:1)

在SQL中,delete删除行而不是列。

Oracle中有三个选项:

  • 使用update将所有值设置为NULL
  • 从表格中删除列。
  • 将列设置为unused。

最后两个使用alter table

alter table t drop column col;
alter table t set unused (col);

答案 3 :(得分:-1)

update employee set commission=nvl2(commission,'','')

这将删除列中的所有数据