如何在mysql中编写IF语句
我有一个带有如何在mysql中编写IF语句,mysql,sql,if-statement,Mysql,Sql,If Statement,我有一个带有类型字段的表 如何在查询中检查此字段: 我想检查它是否键入a 然后bes=amount,bed='-' 其他bed=金额,bes='-' bes和bed在我的表格中不存在,但数量为(int) 这是我的尝试: SELECT billing.*, CASE billing.type WHEN 'A' THEN billing.amount AS bes, '-' AS bed ELSE billing.amount AS bed, '-' AS bes END FROM
类型
字段的表
如何在查询中检查此字段:
我想检查它是否键入a
然后bes
=amount
,bed
='-'
其他bed
=金额
,bes
='-'
bes和bed在我的表格中不存在,但数量为(int)
这是我的尝试:
SELECT billing.*,
CASE billing.type WHEN 'A' THEN billing.amount AS bes, '-' AS bed ELSE billing.amount AS bed, '-' AS bes END
FROM billing
。。。我的搜索没有用
任何解决方案…一个只能有一个返回值
这应该可以做到:
SELECT billing.*,
CASE billing.type WHEN 'A' THEN billing.amount ELSE '-' END AS bes,
CASE billing.type WHEN 'A' THEN '-' ELSE billing.amount END AS bed
FROM billing
您需要两个案例陈述:
SELECT billing.*,
CASE billing.type WHEN 'A' THEN billing.amount ELSE '-' AS bes END,
CASE billing.type WHEN 'A' THEN '-' ELSE billing.amount AS bed END
FROM billing
选择计费。*,
当billing.type='A'然后billing.amount ELSE 0结束为bes时的情况,
开单时的情况。键入“A”,然后开单。其他金额0结束为bed
从帐单
您可以为每一行创建条件,MySQL
支持内联IF
语句
SELECT billing.*,
IF(billing.type = 'A', billing.amount, '-') AS bes,
IF(billing.type = 'A', '-', billing.amount) AS bed
FROM billing
根据您的MySQL版本,您可以对
大小写(1)、(2)使用两种不同语法中的一种或两种
正如你所看到的,我们都非常同意这里的正确解决方案:-)那很好。。。当我在单独的查询中尝试此操作时,没有问题,但在我的项目中。。。错误你犯了什么错误?
SELECT billing.*,
IF(billing.type = 'A', billing.amount, '-') AS bes,
IF(billing.type = 'A', '-', billing.amount) AS bed
FROM billing
SELECT *,
(IF type = 'A' THEN amount ELSE '-' END IF) bes,
(IF type = 'A' THEN '-' ELSE amount END IF) bed
FROM billing