SQL - 在同一查询上下文中引用列值
SQL - Reference a column value in the same query context
我需要知道是否有任何方法可以在同一查询上下文中引用列值。
在此示例中,我在第二个嵌套 select
上定义“数量”值,并尝试在第一个嵌套 select
.
上访问它
我得到 Reference 'amount' not supported (forward reference in item list)
我知道如果我首先在列列表上定义“数量”它会起作用,但它会改变顺序,影响目标表。
select
col_1,
col_2,
(select if(amount >= 0, 'debit', 'credit')),
col_3,
(select json_value((select json from table), '$.key.val')) as amount,
col_4
from my_table;
有什么方法可以分配一个值以在查询上下文中可用,而不管顺序如何?
我想避免重复代码,通过避免冗余计算来提高查询效率。
在 派生的 table 中执行 json 部分(即子查询):
select
col_1,
col_2,
case when amount >= 0 then 'debit' else 'credit' end,
col_3,
amount,
col_4
from
(
select
col_1,
col_2,
col_3,
json_value(_json, '$.key.val') as amount,
col_4
from my_table
) dt
我需要知道是否有任何方法可以在同一查询上下文中引用列值。
在此示例中,我在第二个嵌套 select
上定义“数量”值,并尝试在第一个嵌套 select
.
我得到 Reference 'amount' not supported (forward reference in item list)
我知道如果我首先在列列表上定义“数量”它会起作用,但它会改变顺序,影响目标表。
select
col_1,
col_2,
(select if(amount >= 0, 'debit', 'credit')),
col_3,
(select json_value((select json from table), '$.key.val')) as amount,
col_4
from my_table;
有什么方法可以分配一个值以在查询上下文中可用,而不管顺序如何? 我想避免重复代码,通过避免冗余计算来提高查询效率。
在 派生的 table 中执行 json 部分(即子查询):
select
col_1,
col_2,
case when amount >= 0 then 'debit' else 'credit' end,
col_3,
amount,
col_4
from
(
select
col_1,
col_2,
col_3,
json_value(_json, '$.key.val') as amount,
col_4
from my_table
) dt