当前位置: 首页 > 面试题库 >

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

卫浩瀚
2023-03-14
问题内容
SELECT id, amount FROM report

我需要的amountamount,如果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

此外,您可以处理条件为null的情况。如果为零:

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

该部分IFNULL(amount,0)表示 当金额不为null时返回金额,否则返回0



 类似资料:
  • 我已经通读了所有其他文章,我没有找到我的答案。 我从一个带有对象选项的JOptionPane开始。当用户选择动物或栖息地时,会出现另一个带有选项的下拉列表。现在我正在努力让另一个信息弹出窗口在狮子被选中时打开。但我不能让它工作。 我还查看了其他人的输入,以便能够显示这些下拉列表。但他们使用的是JFrame,因此在NetBeans之外会打开另一个java窗口。 我现在要做的是为下拉列表中的选项输入i

  • 我有一个java应用程序,它执行用户在UI上输入的SQL select语句。应用程序获取元数据以了解列类型: 一旦我得到结果集,对于每一行,我循环遍历列以了解类型。根据类型,我使用getInt()、getDate()或getString()获得值。 问题是,在某些情况下,select有一个很大的SUM(),当我执行getInt()时会出现一个数字溢出(我从JDBC驱动程序得到一个错误,在我的例子中

  • 问题内容: 有没有一种方法可以在SQL中同时选择一列和其他列的总和? 例子: 问题答案: 尝试添加GROUP BY

  • 问题内容: 以下工作-拒付金额等于1时返回Y,否则默认为N 但是我似乎无法使这一工作正常?语法有效吗 问题答案: 大概这可以工作:

  • 问题内容: 好的,因此我对其他解决方案没有任何帮助。所以这就是我想要做的。我需要选择多列的行,其中一列的值是最大值。 这是样本数据 我需要选择整行,其中orderfileid是每个唯一商品编号的最大值 返回的数据集应该看起来像 我想我尝试过可以想到的select max(orderfileid)的每种组合 任何帮助都将被申请。谢谢 问题答案: 您需要在子查询中找到MAX值,然后使用这些结果将其连接

  • 问题内容: 我有这样的桌子 我需要选择何时类型为0,何时类型为1,何时类型为N … 我怎样才能做到这一点? 问题答案: