2015-04-16 30 views
1

我有以下显示基于列单行数据多行值

ID   DATE  COMPLIANCE ISBREAKREDUCED ISSECONDMEALBREAKREDUCED 
1208240 4/12/2015 2    1    1 

数据如何使用它在我的基地查询,以显示不同的行列ISBREAKREDUCED & ISSECONDMEALBREAKREDUCED如果有值是1。 这个表连接条件是基于id和日期字段,这就是它选择单行的原因。我怎样才能在输出中将这一行分成多行?

+0

所需的输出是不明确的。你想不透明吗?或者,你想只有一列而只有两行吗?请编辑您的问题并添加您想要的输出。 –

回答

0

我认为你正在寻找一个典型的UNPIVOT查询。

你会做得一样:

SQL> WITH DATA AS(
    2 SELECT 1208240 ID, 1 ISBREAKREDUCED, 1 ISSECONDMEALBREAKREDUCED FROM dual UNION ALL 
    3 SELECT 1208241 ID, 2 ISBREAKREDUCED, 3 ISSECONDMEALBREAKREDUCED FROM dual 
    4 ) 
    5 SELECT * 
    6 FROM 
    7 (SELECT               * 
    8 FROM DATA UNPIVOT (ISSECONDMEALBREAKREDUCED FOR ISBREAKREDUCED IN (ISBREAKREDUCED AS 1, ISSECONDMEALBREAKREDUCED AS 1)) 
    9 ) 
10 WHERE ISBREAKREDUCED   =1 
11 AND ISSECONDMEALBREAKREDUCED =1 
12/

     ID ISBREAKREDUCED ISSECONDMEALBREAKREDUCED 
---------- -------------- ------------------------ 
    1208240    1      1 
    1208240    1      1 

SQL>