如何在MySQL查询的IF条件下使用As?

时间:2019-04-18 05:47:16

标签: mysql if-statement

我正在研究分类帐,我的php代码需要查询以标识其借方金额还是贷方金额。

SELECT jobber, 
IF(Pay_type='Payable', amount AS credit_amount, amount AS debit_amount)
 FROM Jobber_payments

我也尝试过这种方法,但是对我不起作用。以上查询是否有可能。

SELECT jobber, IF(Pay_type='Payable', credit_amount, debit_amount) AS amount_type
amount AS (SELECT amount_type)
FROM Jobber_payments

如果condition(Pay_type ='Payable')为true,它将通过

credit_amount将是字段名称或列名称,金额值为5000

其他 debit_amount将是字段名称或列名称,金额值为5000

2 个答案:

答案 0 :(得分:0)

您不能在列中使用2个不同的名称(别名)。
您可以做的是两列,每种情况一列:

SELECT 
  jobber, 
  case when Pay_type='Payable' then amount end AS credit_amount, 
  case when Pay_type<>'Payable' then amount end AS debit_amount 
FROM Jobber_payments

在这种情况下,有2列,其中一列将为null,另一列将包含一个值。

答案 1 :(得分:-2)

以下详细说明了IF条件;

IF(condition, value_if_true, value_if_false)

检查下面的链接,他们已经清楚地解释了IF的用法。

https://www.w3schools.com/sql/func_mysql_if.asp