sql - 为什么 SELECT 'foo' + NULL; 在 SQL Server 上返回 NULL
问题描述
为什么在 SQL Server上SELECT 'foo' + NULL;
返回?NULL
我希望它会回来foo
。
更新:SQL 查询是由 C# 的 Entity Framework Core 生成的,我希望能翻译空处理行为。
解决方案
嗯,这就是整个概念NULL
。它表示数据库中缺少的值,因此使大多数操作不适用:
任何算术运算
NULL
(两端的加法、减法、乘法、除法)都返回NULL
。NULL
与返回的字符串连接NULL
(在大多数 RDBMS 上,但不是 Oracle,其中NULL
被视为空字符串,因此类似于select NULL || 'A' from dual
返回的查询A
)与
NULL
(相等,不同,类似)的比较永远不会匹配。您通常需要使用特定的功能,例如ISNULL
测试一个值是否NULL
有关更多信息,请查看此维基百科页面
推荐阅读
- swiftui - 换行时无法对齐 Button 中的左侧文本
- java - 如何解决'“eclipse classNotFoundException”
- azure-cosmosdb - 如何判断 CosmosDb 集合是否使用大分区键,以及 100 字节有多少个字符?
- visual-studio-2010 - 没有用于安装moralis-admin-cli 的nmp 命令
- mysql - Docker swarm stack mysql/mysql-cluster 无法解析服务名称
- css - 选择 2 个标题之间的所有元素(具有可变 id)
- java - 将代数国际象棋符号转换为棋盘布局或 FEN 符号的算法
- linux-kernel - LPC 芯片的基本内核 HWMon 驱动模块?
- javascript - Prisma 读取数据 - 有没有更好的方法来读取嵌套数据?
- time - 斐波那契数的递归时间复杂度?