因此,我决定从现有表创建一个 View ,但我无法对它们使用比较条件。问题是,如果我的预算小于价格,那么它应该在列中显示为 1,否则为 0。此外,该列应该是一个名为 RiskyorNot 的 bool 值。为此,我使用了一个公式,但无法得到它由于某些 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;
最佳答案
View 不能包含过程逻辑,这正是 IF ELSE 构造的含义。您只能在您的 View 中使用逻辑表达式。尝试使用 CASE statement这里。这将允许您编写一个可以在查询 View 时计算的表达式。
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/