mysql - 创建在 IF ELSE 语句中进行比较的 View

标签 mysql sql select view mysql-workbench

因此,我决定从现有表创建一个 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/

相关文章:

带有 LIKE 的 PHP MySql 搜索匹配太多行

php - 当数据以 html 格式存储在 mysql 中时,如何在 php 中使用子字符串?

python - 使用 Peewee ORM 池连接的正确方法

mysql - 按表记录 Rails 的总和和计数进行分组

mysql - 在 drupal 7 中查询文章

Mysql根据不同的选择获取一行

mysql - 如何提高 SQL 计数性能?

performance - 防止 OpenJPA N+1 在 map 上选择性能问题

mysql - 选择多个 mysql 列

php - 如何使用 mysql 浏览器(如 phpmyadmin)在 mysql 中设置外键?