gpt4 book ai didi

sql - 如何在 DB2 中引用隐式命名的列

转载 作者:行者123 更新时间:2023-12-04 18:25:18 25 4
gpt4 key购买 nike

在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com