我正在选择一组记录,并且想按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)
谁能为我提供有关如何获得所需结果的见解?我正在为此奋斗!
非常感谢!
最佳答案
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)
关于sql - Oracle SQL NOT NULL x或NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832473/