我正在尝试学习如何在SQL中更具体地使用CASE/WHEN,mySQL。
我有两个表:adhoc_item和adhoc_vulnerability。ahdoc_item有一个与之相关的adhoc_vulnerability 。现在adhoc_vulnerability 可能有也可能没有附加的漏洞(original_vulnerability_id)。
如果没有,那么我想自己返回名称。
表格:(或其相关部分)
ADHOC_ITEM
ADHOC_VULNERABILITY 这是我的查询:
SELECT adi.name as item, CASE ahv.original_vulnerability_id
WHEN ISNULL(ahv.original_vulnerability_id) THEN ahv.name
ELSE 'foo'
END NAME
FROM adhoc_item adi
JOIN adhoc_vulnerability ahv ON ahv.id = adi.adhoc_vulnerability_id
这些就是结果!
现在我知道这有点复杂,但我已经考虑了大约 2 个小时,并没有找到解释为什么最后一个项目(它有一个adhoc_vulnerability与 NULL 作为original_vulnerability_id)显示应该在什么时候精确出现的值该属性不为空!
提前致谢。