作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 DB2 LuW 中,我正在运行以下查询
db2 => select 'a', 'b' from sysibm.dual
1 2
- -
a b
1 record(s) selected.
请注意,生成的“列名”是从 1 开始的列索引。现在,如果我有一个派生表这样的查询,我不能像这样简单地通过索引引用列名:
db2 => select t."1", t."2" from (select 'a', 'b' from sysibm.dual) t
SQL0206N "T.1" is not valid in the context where it is used. SQLSTATE=42703
尽管数字列别名是可能的,但这是可行的:
db2 => select t."1", t."2" from (select 'a' as "1", 'b' as "2" from sysibm.dual) t
1 2
- -
a b
1 record(s) selected.
或者,使用派生列列表:
select t."1", t."2" from (
select 'a', 'b' from sysibm.dual
) t("1", "2")
有没有办法在不修改原始查询的情况下引用生成的列名/索引,也不将其包装在派生表中(这可能会产生副作用,例如丢失顺序)?
请注意,原始查询可能不受我的控制,因为它是由其他一些逻辑提供的,例如在 jOOQ 的背景下
最佳答案
您不能在 Db2 中引用未命名(使用系统生成的名称)列。
关于sql - 如何在 DB2 中引用隐式命名的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56022295/
我是一名优秀的程序员,十分优秀!