【问题标题】:rename columns in a view Oracle重命名视图 Oracle 中的列
【发布时间】:2022-11-24 18:05:18
【问题描述】:

我们有一个视图比方说 table1_v

如果我运行 select * from table1_v ,我会得到一个包含一列的输出 - Year (Jahr)

我想知道底层的 sql 是什么,所以我可以在 Sql developer 中的这个视图的详细信息下或在 all_views 中找到它。

我想知道,因为 sql 看起来像这样 从表 1 中选择年份。这样的 sql 会给我列名 YEAR 而不是 Year (Jahr)

我希望在视图定义中有这样的东西 - 从表 1 中选择年份作为“Year (Jahr)”

所以我的问题是,如果列名不在视图定义中并且是否是最佳实践,可以在哪里重命名列名?

【问题讨论】:

  • 为什么您不根据需要更改别名列?无论如何,您可以从视图中为选定的列添加别名

标签: sql view oracle19c


【解决方案1】:

如果您确实想在视图中重命名它,请给该列一个别名:

CREATE VIEW view_name (col1, col2, col3, col4, "Year (Jahr)", col6, col7) AS
SELECT col1, col2, col3, col4, year, col5, col6
FROM   table_name;

但是,不要这样做,因为这不是最佳做法。

如果你想在你的标识符中包含大小写混合、空格和符号字符,那么你将需要使用带引号的标识符,这意味着你需要在查询中重复使用的任何地方使用完全相同的带引号标识符。由于大小写匹配等问题,使用带引号的标识符不被认为是最佳实践,您应该尽可能使用不带引号的标识符。

如果列名不在视图定义中并且是否是最佳实践,那么在哪里可以重命名列名?

您可以在需要时从视图中为 SELECT 添加别名,而不是更改视图展示输出:

SELECT col1, col2, col3, col4, year AS "Year (Jahr)", col6, col7
FROM   view_name;

【讨论】:

    猜你喜欢
    • 2012-06-26
    • 2010-10-24
    • 1970-01-01
    • 2011-05-31
    • 2011-12-12
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多