我正在尝试从SQL表查询。我在使if语句适用于要在查询中实现的条件操作时遇到问题。
如果玩家的死亡次数= 0,我希望kd列(比率)等于杀死数,而不是NULL。这是我当前的查询,我不知道如何进行此查询。
SELECT name, time, map, kills, deaths, kills/deaths AS kd
FROM history;
我想要的逻辑:
答案 0 :(得分:2)
您可以使用case
表达式:
SELECT name, time, map, kills, deaths,
(case when deaths = 0 then kills else kills/deaths end) as kd
FROM history;
通常,为避免被零除,结果为NULL
就足够了。如果这是您真正想要的,那么NULLIF()
是更好的解决方案:
SELECT name, time, map, kills, deaths,
( kills / NULLIF(deaths, 0) ) as kd
FROM history;
答案 1 :(得分:0)
您需要的是一个您知道的WHERE子句。
并在插入数据库时做出更好的陈述。