gpt4 book ai didi

Oracle - select 语句中的动态列名

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

题:

是否可以根据结果集中的值更改选择语句中的列名?

例如,如果 year结果集中的值小于 1950 , 命名列 OldYear , 否则命名列 NewYear . year结果集中的值保证对于所有记录都是相同的。

我认为这是不可能的,但这是我测试这个想法的失败尝试:

select 1 as  
(case
when 2 = 1 then "name1";
when 1 = 1 then "name2")
from dual;

最佳答案

您不能改变结果集每行的列名。这是关系数据库的基础。列的名称是表“标题”的一部分,并且名称适用于其下所有行的列。

重新评论:好的,也许 OP Americus 意味着已知结果正好是一行。但无论如何,SQL 没有支持动态列别名的语法。列别名在查询中必须是常量。

即使是动态 SQL 也无济于事,因为您必须运行查询两次。一次获取值,第二次使用不同的列别名重新运行查询。

关于Oracle - select 语句中的动态列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/860516/

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