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