SQL 用 NULL 或文本替换零个 0 值

SQL replace zero 0 values with NULL or text

我有 table 个产品
某些 ProductPrice 值为 0(类型为 decimal(10,0))

ID   | Productname |      ProductPrice                    |
+----+-------------+--------------------------------------+
|  1 | ShirtXS     |      299                             |
|  2 | TrousersM   |        0                             |

ProductPrice 为 DECIMAL(10,0)。
如何使用 NULL 或文本 N/A?
将 SQL 查询写入 convert/replace ProductPrice 值 0 期望的输出:

ID   | Productname |      ProductPrice                    |
+----+-------------+--------------------------------------+
|  1 | ShirtXS     |      299                             |
|  2 | TrousersM   |       NULL or N/A                    |

为此使用 case 表达式:

SELECT Productname ,
       CASE WHEN ProductPrice = 0 THEN NULL
            ELSE ProductPrice
       END as ProductPrice
  FROM table

我不确定您要查找的是 UPDATE 还是 SELECT。如果您正在寻找 SELECT,您可以使用 MySQL 中的 NULLIF()0 替换为 NULL。语法如下:

SELECT *,NULLIF(<column_name>,0) as <variable_name> from <table_name>;