如果列为空,则返回特定字符串的 SQL 查询



当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;

相关内容

  • 没有找到相关文章

最新更新