MySql 具有 NULL 和 0 行的乘法列

MySql multiplication columns with NULL and 0 rows

我有这个MySQLtable:

+----+-------------+----------+------+-------+
| ID | DESCRIPTION | QUANTITY | EACH | PRICE |
+----+-------------+----------+------+-------+
| 1  | Product 1   |     1    |  12  | 1*12  |
| 2  | Product 2   |     2    |   3  | 2* 3  |
| 3  | Product 3   |   NULL   |   3  |       |
| 4  | Product 4   |     0    |   7  |       |
+----+-------------+----------+------+-------+

这个查询:

SELECT
  DESCRIPTION,
  QUANTITY,
  EACH,
  COALESCE(QUANTITY, 1) * EACH AS PRICE
FROM table1

我想用 1 替换 NULL 和 0,并且我想在 PRICE 列中进行乘法运算。我不想使用更新,因为我无法更改 table1 中的值。 谢谢!

听起来你想要CASE:

SELECT DESCRIPTION, QUANTITY, EACH,
       ((CASE WHEN QUANTITY IS NULL THEN 0
              WHEN QUANTITY = 0 THEN 1
              ELSE QUANTITY
         END) * EACH
       ) AS PRICE
FROM table1;

试试下面的查询

SELECT
  DESCRIPTION,
  QUANTITY,
  EACH,
  COALESCE(IF(QUANTITY = NULL OR QUANTITY = 0,1,QUANTITY), 1) * EACH AS PRICE
FROM table1
SELECT
  DESCRIPTION,
  QUANTITY,
  EACH,
  IF(QUANTITY,QUANTITY, 1) * EACH AS PRICE
FROM table1

SQL Fiddle