Oracle Sql NOT NULL xor NULL?

Joh*_*ler 9 sql oracle

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

--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)
Run Code Online (Sandbox Code Playgroud)

任何人都可以让我了解如何实现我正在寻找的预期结果?我在这个上苦苦挣扎!

非常感谢!

Qua*_*noi 12

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)
Run Code Online (Sandbox Code Playgroud)