首页 > 解决方案 > 为什么 SELECT 'foo' + NULL; 在 SQL Server 上返回 NULL

问题描述

为什么在 SQL Server上SELECT 'foo' + NULL;返回?NULL我希望它会回来foo

更新:SQL 查询是由 C# 的 Entity Framework Core 生成的,我希望能翻译空处理行为。

标签: sqlsql-serverstringtsqlsql-null

解决方案


嗯,这就是整个概念NULL。它表示数据库中缺少的值,因此使大多数操作不适用:

  • 任何算术运算NULL(两端的加法、减法、乘法、除法)都返回NULL

  • NULL与返回的字符串连接NULL(在大多数 RDBMS 上,但不是 Oracle,其中NULL被视为空字符串,因此类似于select NULL || 'A' from dual返回的查询A

  • NULL(相等,不同,类似)的比较永远不会匹配。您通常需要使用特定的功能,例如ISNULL测试一个值是否NULL

有关更多信息,请查看此维基百科页面


推荐阅读