Oracle SQL: 是否可以在不重命名的情况下通过不同的名称引用列

Oracle SQL: is it possible to reference a column by different name without renaming it

我的问题描述: 例如,我有一个 table "Item" 和列 "id"、"name"、"color",但出于某些奇怪的原因(请不要问为什么 - 它不是不是我)在 "color" 列中有关于该项目的信息,它基本上应该被称为 "description" 项目中的很多代码都依赖它,简单地重命名列名将花费大量时间。

问题: 有没有办法创建某种指向该列的指针并正确调用它,以便下面的 sql 将按预期工作:

select i.id, i.name, i.description from Item i

(它会知道当我输入 "description" 时它应该查看 "color" 列。

您可以使用正确命名的列创建可更新视图。

https://msdn.microsoft.com/en-us/library/ms180800.aspx

这叫做列别名,这个例子很笨拙

select BB from
(select column1 AA, column2 BB, column3 CCC from mytable);

简答:没有。长答案:您可以在 Oracle 中创建插入和更新触发器,始终保持这些列同步。但是,最好的办法是接受它,或者重命名它并修复您的代码。将触发器和数据存储在两列中只是为了让您的旧代码不会中断,但让您的新代码使用新列对我来说感觉像是一种反模式。坦率地说,即使 Oracle DID 拥有您开箱即用的要求,它仍然感觉像是一种反模式。作为一名开发人员,我会为这样的事情挠头: "Let's see all the places where we ever select color." 哎呀,您只是错过了所有使用 description 的地方。尝试走这条路似乎很混乱。同样,我建议接受它,或者花时间用新的正确名称更新项目