首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle Sql NOT NULL xor NULL?

Oracle Sql NOT NULL xor NULL?
EN

Stack Overflow用户
提问于 2011-04-29 21:09:45
回答 3查看 9.8K关注 0票数 9

我正在选择一组记录,并且我想过滤XOR逻辑中的一列- IS NOT NULL xor IS NULL。

代码语言:javascript
复制
--basic
SELECT make, model
FROM cars

results
--------
ford   taurus
ford   (null)
toyota camry
toyota (null)
honda  (null)

--Obviously XOR is not a real Oracle operator
--This is what I'm trying to do..
SELECT make, model
FROM cars
WHERE model IS NOT NULL
  XOR model IS NULL 

results (pulls records where model IS NOT NULL, falling back to NULL if necessary)
--------
ford   taurus
toyota camry
honda  (null)

有谁能给我一些关于如何达到我想要的结果的见解?我正在努力解决这个问题!

非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-29 21:18:08

代码语言:javascript
复制
SELECT  make, model
FROM    (
        SELECT  c.*,
                ROW_NUMBER() OVER (PARTITION BY make ORDER BY model NULLS LAST) AS rn
        FROM    cars c
        )
WHERE   NOT (rn > 1 AND model IS NULL)
票数 12
EN

Stack Overflow用户

发布于 2011-04-29 21:18:33

代码语言:javascript
复制
SELECT make, model
FROM cars 
WHERE model IS NOT NULL
UNION -- Add makes that don't have any specific model
SELECT make, model 
FROM cars 
WHERE make NOT IN 
  (SELECT make
  FROM cars 
  WHERE model IS NOT NULL)
票数 3
EN

Stack Overflow用户

发布于 2011-05-03 19:02:31

我最初支持Klas Lindbäck的答案,但现在我想知道这是否会给出预期的结果:

代码语言:javascript
复制
SELECT make, model
  FROM Cars 
 WHERE model IS NOT NULL
UNION 
SELECT make, NULL
  FROM Cars 
MINUS
SELECT make, NULL
  FROM cars 
 WHERE model IS NOT NULL;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5832473

复制
相关文章

相似问题

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