因此,我决定从现有表中创建视图,但无法对其使用“比较”条件。问题是,如果我的预算小于价格,则该列应在该列中显示为1,否则为0。此外,该列应为一个名为RiskyorNot的布尔值。为此,我使用了一个公式,但无法获取它由于某些mysql语法错误而关闭。任何帮助下面是我的声明:

CREATE VIEW PricevsAllowance as SELECT c.names AS 'category name ',a.maxamt AS 'allowance', tot.totalexpend  AS 'total expenditure',RiskyorNot BOOLEAN FROM Category c JOIN allowance a ON c.allow_id = a.allow_id JOIN Totalexpanddetail t ON t.cat_num = c.cat_num
           IF(a.maxPercentage *(a.maximumprice/100)) THEN
                RiskyorNot = '1'
           ELSE
                RiskyorNot = '0'
           END IF;

最佳答案

视图不能包含过程逻辑,而这正是IF ELSE构造的本质。您将只能在视图中使用逻辑表达式。在此处尝试使用CASE statement。这将允许您编写一个表达式,在查询视图时可以对其进行评估。

CASE
    WHEN a.maxPercentage * (a.maximumprice / 100)
    THEN '1'
    ELSE '0'
END AS RiskyOrNot


您还需要将此CASE语句放入您在上面开始的列列表中。

关于mysql - 在IF ELSE语句中创建带有比较的 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51110993/

10-09 08:38