当SQL查询返回null时,我想知道是否可以让它返回特定的字符串,例如"未知"而不是null。
我目前正在 JavaScript 端执行此操作,并且想知道是否有更快的方法可以在服务器上执行此操作。
示例(我意识到以下语法不存在):
SELECT Customers.Email (RETURN "Unknown" IF NULL)
我想用一个案例可以吗?但是用 CASE 语句填充我的查询会减慢整个操作的速度,而不是加快它的速度。
您可以使用
coalesce
:
SELECT COALESCE(email, 'Unknown')
FROM customers
在MySQL中,您可以使用IFNULL
SELECT IFNULL(Customers.Email, 'Unknown') AS Email
虽然COALESCE
是最好的解决方案,但也存在CASE
如果您必须处理空值或空字符串,这会很方便。
SELECT CASE Customers.Email
WHEN NULL THEN 'Unknown'
WHEN '' THEN 'Unknown'
ELSE Customers.Email
END AS Email
FROM Customers;
SELECT CASE
WHEN Customers.Email IS NULL THEN 'Unknown'
WHEN TRIM(Customers.Email) = '' THEN 'Unknown'
ELSE Customers.Email
END AS Email
FROM Customers;