SQL查询(条件)

SQL查询(条件),sql,Sql,我正在尝试从SQL表进行查询。对于我试图在查询中实现的有条件的事情,我在获取if语句时遇到了问题 如果玩家的死亡数=0,我希望kd列(比率)等于kills,而不是NULL。这是我目前的问题,我不知道该如何回答 SELECT name, time, map, kills, deaths, kills/deaths AS kd FROM history; 逻辑我想要: 如果死亡=0:死亡/死亡=死亡 您可以使用大小写表达式: SELECT name, time, map, kills, dea

我正在尝试从SQL表进行查询。对于我试图在查询中实现的有条件的事情,我在获取if语句时遇到了问题

如果玩家的死亡数=0,我希望kd列(比率)等于kills,而不是NULL。这是我目前的问题,我不知道该如何回答

SELECT name, time, map, kills, deaths, kills/deaths AS kd 
FROM history;
逻辑我想要:

  • 如果死亡=0:死亡/死亡=死亡

您可以使用
大小写
表达式:

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;

你所需要的只是一个WHERE子句


并在插入数据库时做出更好的声明。

非常感谢。case表达式正是我想要的。