【发布时间】:2020-03-28 10:16:12
【问题描述】:
我正在使用 Oracle 并尝试创建一个视图,我将在其中将一个日期值替换为另一个日期值。我正在尝试使用case when 语句,但是,我需要使用相同的列名作为别名,并且我得到了我有重复列名的错误。您是否知道如何修复它或提出替代列中的日期值并创建视图的替代方法?我需要保持原表不变。
代码:
create view name_of_view as
select t.*,
(case when birth_date = to_date('4.12.2015', 'DD.MM.YYYY')
then to_date('4.12.1950', 'DD.MM.YYYY')
else birth_date end) as birth_date
from table t;
【问题讨论】:
-
t.* 是一种反模式。使用完整的列列表。 Oracle 不支持SELECT * EXCEPT/REPLACE syntax
-
还有其他选项不需要使用完整的列列表吗?我的表大约有 100 列。
-
我不坚持使用case语句进行替换,我只需要创建视图而不更改现有表。
-
SELECT col1, col2, ...你不需要手写。只需从对象资源管理器中拖放(如果您使用的是 SQL Developer)
标签: sql oracle date case sql-view