我正在使用MYSQL和PHP。我有一个名为item的表。它的两个属性是价格和折扣价。我有SELECT语句如下:
$sql =
'SELECT C.cart_id,I.item_id,C.quantity, I.discounted_price,I.price
FROM cart C, item I
WHERE I.item_id = C.item_id';
我想修改这个sql语句并包含一个条件表达式,使得:如果discounted_price为0,则选择其他价格,选择discounted_price。 可以在SQL语句中使用条件表达式吗? 谢谢! :)
答案 0 :(得分:5)
试试这个:
SELECT
C.cart_id,
I.item_id,
C.quantity,
COALESCE(I.discounted_price, I.price) AS price
FROM
cart C,
item I
WHERE
I.item_id = C.item_id
COALESCE
从参数列表中选择第一个非空值。也就是说,当discount_price为NULL时,它返回价格。
如果'null'值为0.00,则可以使用:
SELECT
C.cart_id,
I.item_id,
C.quantity,
IF(I.discounted_price > 0, I.discounted_price, I.price) AS price
...
也就是说,如果折扣价大于零,请使用它,否则使用正常价格。
答案 1 :(得分:0)
在SQL Server中:
SELECT C.cart_id,I.item_id,C.quantity, CASE WHEN I.discounted_price IS NULL THEN I.price ELSE I.discounted_price END AS price
FROM cart C, item I
WHERE I.item_id = C.item_id
你可以试试mysql。
答案 2 :(得分:0)
像
这样的东西SELECT C.cart_id,I.item_id,C.quantity,
IfNull(I.discounted_price,I.price) as Price
FROM cart C, item I
WHERE I.item_id = C.item_id
如果您使用的是MSSQL,请使用IsNull