简体   繁体   English

在视图的子查询中使用视野

[英]Using a field of view in the view's sub query

I have a view which has a column which is calculated from other columns. 我有一个视图,该视图具有从其他列计算得出的列。 For example, in my original table I have the columns A and B from which I calculate the value of column X in my view. 例如,在我的原始表中,我具有A列和B列,从中可以计算视图中X列的值。 I need the value of X in another column I have in the view - Z . 我在视图Z另一列中需要X的值。 But when I put it in the sub-query of my view I get an Unknown column 'X' in 'field list' SQL statement . 但是,当我将其放在视图的子查询中时, Unknown column 'X' in 'field list' SQL statement得到一个Unknown column 'X' in 'field list' SQL statement

The sub-query of the view looks like this: 视图的子查询如下所示:

    (CASE
            WHEN (`users`.`A` REGEXP '^(regexone)') THEN 'ValueA'
            WHEN (`users`.`B` REGEXP '^(regextwo)') THEN 'ValueB'
            ELSE ''
        END) AS `X`,
    (CASE
            WHEN
                (`X` = 'ValueA')
            THEN
                (`users`.`C`*0.95-0.3)
            ELSE ''
    END) AS 'Z'

What's the correct syntax of using a computed view field in the computation of another field? 在另一个字段的计算中使用计算的视图字段的正确语法是什么?

if you can you user-defined variables use like 如果可以的话,用户定义的变量可以像

SELECT
@x := (CASE
        WHEN (`users`.`A` REGEXP '^(regexone)') THEN 'ValueA'
        WHEN (`users`.`B` REGEXP '^(regextwo)') THEN 'ValueB'
        ELSE ''
    END) AS `X`,
(CASE
        WHEN
            (@x = 'ValueA')
        THEN
            (`users`.`C`*0.95-0.3)
        ELSE ''
END) AS 'Z'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM