Sql 创建具有Exception条件的视图

Sql 创建具有Exception条件的视图,sql,oracle,Sql,Oracle,示例我想创建一个视图名测试 在此之前我已经创建了一个视图 视图名称:客户 内部客户视图: //CUSTOMER NAME ID ADDRESS AGE SEX TELNO EMAIL ----------------------------------------------------------------------- CHRIS 1 12321312 21 F

示例我想创建一个视图名测试

在此之前我已经创建了一个视图 视图名称:客户

内部客户视图:

//CUSTOMER
NAME      ID            ADDRESS       AGE     SEX      TELNO     EMAIL
-----------------------------------------------------------------------
CHRIS     1               12321312     21      F        646885   ascs@gmail
JOHN      2               SADASDSA     23      M        5452131  asd@gmail
MAY       3               LKJLKJLKJ    32      F        645643   cxz@gmail
所以我想创建一个视图名测试,它将存储除TELNO电子邮件之外的CUSTOMER内部的所有列

所以我使用了这个查询:

CREATE VIEW TEST AS
  SELECT * FROM CUSTOMER
  EXCEPT
  SELECT TELNO,EMAIL FROM CUSTOMER;

但我工作失败,错误就出来了。SQL命令未正确结束并指向,除了,出了什么问题?

您必须明确列出所有需要的列:

CREATE VIEW TEST AS
    SELECT NAME, ID, ADDRESS, AGE, SEX
    FROM CUSTOMER;
无法从
*
列表中排除某些列

除外
是SQL Server中的运算符。Oracle中的等效项是
。但是,这在行级别有效,而不是在列级别

如果要获取表中除这两列以外的所有列,可以使用
all\u tab\u columns

select column_name
from all_tab_columns
where lower(table_name) = 'customer' and
      lower(column_name) not in ('telno', 'email');

然后,您可以将它们粘贴到
select
子句中。

您不是刚刚发布了这篇文章,并获得了问题的答案吗?答案不会改变,因为您已删除上一个问题并重新发布。(如果你继续这样做,你会被系统自动禁止——删除的帖子会被考虑在内,所以请小心)。结果未返回选定的行,这是视图,不是表。@user3553846。只需将
创建视图
选择之前
。我无法理解您的意思,但我提到的没有选择行