mariadb 如何进行SQL CASE查询?

9rygscc1  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(156)

我尝试执行Case查询,但没有显示预期的成功。

SELECT
   t1.Id,   
     t1.amount,
     t2.Id,
     t1.singlePrice,                            
  CASE t1.number  
     WHEN NULL THEN t3.number
  END
FROM TABLE1 t1
LEFT JOIN TABLE2 t2 ON t1.Id = t2.fk_id
LEFT JOIN TABLE3 t3 ON t1.number = t3.number
WHERE t2.id = 487

通常所有的数字都在表3中。但是在表1中有一些数字在表3中不存在。我想要的是:如果在表3中找到数值,则使用表3中的数值,否则使用表1中的数值。

uubf1zoe

uubf1zoe1#

您应该检查t3.number为空

SELECT
   t1.Id,   
     t1.amount,
     t2.Id,
     t1.singlePrice,                            
  CASE WHEN t3.number  IS NULL
     THEN t1.numnber
     ELSE t3.number
  END
FROM TABLE1 t1
LEFT JOIN TABLE2 t2 ON t1.Id = t2.fk_id
LEFT JOIN TABLE3 t3 ON t1.number = t3.number
WHERE t2.id = 487

也可以

SELECT
   t1.Id,   
     t1.amount,
     t2.Id,
     t1.singlePrice,                            
  COALESCE (t3.number, t1.numnber)
FROM TABLE1 t1
LEFT JOIN TABLE2 t2 ON t1.Id = t2.fk_id
LEFT JOIN TABLE3 t3 ON t1.number = t3.number
WHERE t2.id = 487

相关问题