1

如何在列的别名中使用 SELECT 子查询?

这是我的脚本:-

/*Declaring variables:*/
SET period= '3';
SET smryseg=concat('sku',$period,'_smry');
SET spend= concat('sku',$period,'')
/*Printing it:*/
SELECT $period;                   /* #O/P: 3 */
SELECT $smryseg;                  /* #O/P: sku3_smry */
SELECT $spend;                    /* #O/P: sku3_spend */

/*now I want to use this variable in my INNER SELECT query:*/

create table IDENTIFIER ($smryseg) as
SELECT sum(spend) as (SELECT $spend)
FROM my_table;

在这里,最后一个查询给了我一个错误,我还尝试使用IDENTIFIERCONCATSUBSRING$删除括号等等。我只想将列“sum(spend)”的名称作为“sku3_spend”获得,即动态格式

4

1 回答 1

0

之后您可以重命名该列。这是一个独立的示例:

set spend_col='sku3_spend';
create or replace table t as select sum(spend) as x from values(1),(2),(3) s(spend);
alter table t rename column x to identifier($spend_col);

更新

您可以将动态命名的列存储在对象中:

set spend_col='sku3_spend';

create or replace table t as 
    select object_construct($spend_col, sum(spend)) data 
    from values(1),(2),(3) s(spend);

select data:sku3_spend from t;
于 2020-03-04T15:26:15.390 回答