mysql - 'SELECT' 语句中的 'IF' - 根据列值选择输出值

SELECT id, amount FROM report

我需要 amount成为 amount如果 report.type='P'-amount如果 report.type='N' .如何将其添加到上述查询中?

最佳答案

SELECT id, 
       IF(type = 'P', amount, amount * -1) as amount
FROM report

见 http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html .

此外,您可以在条件为空时进行处理。金额为空的情况:

SELECT id, 
       IF(type = 'P', IFNULL(amount,0), IFNULL(amount,0) * -1) as amount
FROM report

IFNULL(amount,0)部分表示当amount不为null时返回amount else return 0

关于mysql - 'SELECT' 语句中的 'IF' - 根据列值选择输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951157/

相关文章:

mysql - 何时在 MySQL 中使用单引号、双引号和反引号

mysql - 复制 MySQL 表、索引和数据

mysql - 在 MySQL 中创建新用户并授予其对一个数据库的完全访问权限

mysql - 如何在 MySQL 中收缩/清除 ibdata1 文件

mysql - 在 MySQL 中查找重复记录

mysql - 如何截断外键约束表?

mysql - 如何在 MySQL 中临时禁用外键约束?

mysql - 主机 'xxx.xx.xxx.xxx' 不允许连接到这个 MySQL 服务器

sql - 如何在 MySQL 中进行 FULL OUTER JOIN?

sql - 如何查看 MySQL 数据库/表/列的字符集是什么?