2017-10-16 386 views
-1

我想从oracle DB中获取列值为NULL的记录。另外我在我的查询中使用了unpivot。由于unpivot关键字不知何故NULL值未被选中。您可以请帮我关于如何在使用unpivot时获得相同的行。oracle - 在unpivot查询中查询NULL值

编辑:

SELECT a.emp_id, a.emp_dept, b.emp_location 
    FROM employee a, 
     location b UNPIVOT (emp_id 
        FOR dummy_id 
        IN (emp_id AS 'EMP_ID', last_date AS 'LAST_DATE')) 
WHERE emp_id = 123 AND b.emp_loc_id = 'india' AND b.location IS NULL; 
+0

给您查询+样本数据的例子,为了更好地理解这个问题。谢谢 – g00dy

+0

我不能提供数据或样品查询 – thistime012

+0

对不起,但这个问题是关闭我的朋友。如果没有提供关于您所做的工作的至少一些信息,Stackoverflow不是一个获得直接解决方案的地方。如果没有这些信息,你会得到很多downvotes,并最终这个线程将被关闭... :-( – g00dy

回答

1

使用UNPIVOT INCLUDE NULLS

SQL Fiddle

的Oracle 11g R2架构设置

CREATE TABLE test (id, a, b, c, d) AS 
SELECT 1, 1, 2, 3, 4 FROM DUAL UNION ALL 
SELECT 2, 1, NULL, 3, NULL FROM DUAL; 

查询1

SELECT * 
FROM test 
UNPIVOT INCLUDE NULLS (value FOR name IN (a, b, c, d)) 

Results

| ID | NAME | VALUE | 
|----|------|--------| 
| 1 | A |  1 | 
| 1 | B |  2 | 
| 1 | C |  3 | 
| 1 | D |  4 | 
| 2 | A |  1 | 
| 2 | B | (null) | 
| 2 | C |  3 | 
| 2 | D | (null) |