首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较包含NULLS的列

比较包含NULLS的列
EN

Stack Overflow用户
提问于 2017-12-20 06:21:57
回答 1查看 40关注 0票数 1

假设我有这个表:

代码语言:javascript
运行
复制
CREATE TABLE t (id int, cola int, colb int);
INSERT INTO t VALUES (1, 1, 1), (2, 1, 2), (3, 1, NULL), (4, NULL, 4);

    id  cola    colb
1   1   1       1
2   2   1       2
3   3   1       NULL
4   4   NULL    4

我想找出cola不等于colb的行。我希望在我写以下代码时会返回第2-4行:

代码语言:javascript
运行
复制
SELECT * FROM t WHERE cola != colb

而是只返回第二行。为了拉出第2-4行,我必须这样写:

代码语言:javascript
运行
复制
SELECT * FROM t
WHERE cola != colb
OR (cola IS NULL AND colb IS NOT NULL)
OR (cola IS NOT NULL AND colb IS NULL)

有没有更干净的方法来做这件事?

在这里测试:http://rextester.com/VJYFX19301

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-20 06:30:13

可能最简单的方法是使用isnull()包装器,比如:

SELECT * FROM t WHERE isnull(cola,-1) != isnull(colb,-1)

假设这是一张相当小的桌子。在连接一个函数时,有一些潜在的性能警告,就像这样,但在您的情况下可能是可以的?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47896046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档