SQL查询(有条件的)

时间:2018-08-05 15:35:50

标签: sql

我正在尝试从SQL表查询。我在使if语句适用于要在查询中实现的条件操作时遇到问题。

如果玩家的死亡次数= 0,我希望kd列(比率)等于杀死数,而不是NULL。这是我当前的查询,我不知道如何进行此查询。

SELECT name, time, map, kills, deaths, kills/deaths AS kd 
FROM history;

我想要的逻辑:

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

2 个答案:

答案 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子句。

并在插入数据库时​​做出更好的陈述。