如何定义游标,当我们在两个表之间有一个公共列而不给出别名时

Posted

技术标签:

【中文标题】如何定义游标,当我们在两个表之间有一个公共列而不给出别名时【英文标题】:How to define a cursor, when we have a common column between two tables without giving alias 【发布时间】:2018-07-16 18:42:29 【问题描述】:

我有 4 张桌子:T1、T2、T3 和 T4。它们都有50多个列。以上4个表之间共有的列很少。假设 C1 存在于所有 4 个表中。上面的多个表之间还有一些共同的列。 现在,如果我将光标 CUR1 标记为:

cursor CUR1 as select * from T1,T2,T3,T4 where <join conditions for 4 tables>;

由于公共列 C1 的歧义,我在获取数据时出现 gettign 错误。 是否可以在不列出每个列名及其别名的情况下避免错误? 不知何故,我可以在不为每一列指定别名的情况下为表的所有列附加任何指示符吗? 谢谢。

【问题讨论】:

【参考方案1】:

据我所知,不可能。但是,如果您经常使用相同的 FROM ... WHERE 子句,您可以创建一个 view (因此,只做一次,指定每一列 - 及其别名 - 以避免错误)然后在SELECT 语句中使用视图。

【讨论】:

以上是关于如何定义游标,当我们在两个表之间有一个公共列而不给出别名时的主要内容,如果未能解决你的问题,请参考以下文章

向H2数据库中的所有表添加列而不手动列出表

当索引依赖于该列而不重新创建索引时,如何将列从 null 更改为非 null?

如何使用Scala的DataFrame比较表中的每一列而不关心列是啥? [重复]

选择多个列而不进行多个查询 php mysql

获取存储在另一个表中的列的定义而不连接两次

如何删除一列并创建一个新列而不是在 EF Core 中重命名?