第二十七回:虚无之境

—— NULL Values & Functions (空值处理)
👈 上一回:隔空取物 🏠 回到大竹峰 下一回:万物属性 👉

有些弟子刚入门,还没发法宝,那一栏是空的。我用 = 0 却查不到他们,为什么?

因为 NULL 不是 0,也不是空格。它是“无”,是虚无,是未知。你不能用“等于”去衡量“无”。

🌫️ 虚空法则:IS NULL

📜 探查虚空

要判断一个值是否为 NULL,必须用 IS NULLIS NOT NULL

SELECT Name FROM Disciples WHERE Weapon_ID IS NULL;

🛡️ 填补虚空:NULL Functions

🧘‍♂️ 试炼:化无为有

我们在计算法宝总攻击力时,如果遇到 NULL,想把它当成 0 来算,该怎么办?

MySQL: IFNULL() 或 COALESCE()

SELECT Name, Attack + IFNULL(Bonus, 0) FROM Disciples;

SQL Server: ISNULL()

SELECT Name, Attack + ISNULL(Bonus, 0) FROM Disciples;

Oracle: NVL()

SELECT Name, Attack + NVL(Bonus, 0) FROM Disciples;

🌟 万法归一:COALESCE()

有没有一种咒语是所有门派通用的?有!那就是 COALESCE()。它会返回参数列表中的第一个非空值。

-- 通用写法 (MySQL, SQL Server, Oracle, PostgreSQL) SELECT Name, COALESCE(Bonus, 0) FROM Disciples;

原来“无”也可以变成“有”,只要心中(函数)有数。