2012-10-18 4 views
1

이중에서 select를 수행하고 결과 행에 결과를 넣을 수 있는지 궁금합니다. 내 원하는 결과가 될 것입니다 : 내가SQL Select Data from n 번째 행

SELECT 'ALL' AS "CID" 
    , 'ALL' AS "EXT" 
FROM DUAL 
UNION 
SELECT * 
FROM 
(
    SELECT DISTINCT COLUMN AS "CID" 
     , COLUMN AS "EXT" 
    FROM TABLEA 
) 

을하고 있었다

CID  EXT 
------ ------ 
ALL  ALL 
--  -- 
DATAA  DATAA 
DATAB  DATAB 
DATAC  DATAC 

하지만 내 결과는

CID  EXT 
------ ------ 
--  -- 
ALL  ALL 
DATAA  DATAA 
DATAB  DATAB 
DATAC  DATAC 
+0

"ALL"값 아래에 줄을 표시 하시겠습니까? 두 개의 노조를 사용해보십시오. – Habibillah

+0

2 개의 노동 조합을 추가하면 내가 나열한 두 번째 결과가 표시됩니다. –

답변

1

그래, 내가 대답을 찾은 것 같아. 내가 제프리의 답변을 사용하는 경우에, 나는

ERROR: ORA-01785: ORDER BY item must be the number of a SELECT-list expression 

그래서, 난 그냥 그런

SELECT 'ALL' AS "CID" , 'ALL' AS "EXT" FROM DUAL 
UNION 
SELECT * FROM 
( 
SELECT DISTINCT COLUMN AS "CID", COLUMN AS "EXT" 
FROM TABLEA ORDER BY "CID", "EXT" 
) 

내 결과 작업으로 변경 얻을 것이다.

1
SELECT 'ALL' AS "CID" 
    , 'ALL' AS "EXT" 
FROM DUAL 
UNION ALL 
SELECT * 
FROM 
(
    SELECT DISTINCT COLUMN AS "CID" 
     , COLUMN AS "EXT" 
    FROM TABLEA 
) 
ORDER BY CASE WHEN "CID" = 'ALL' THEN 1 ELSE 2 END 
     ,"CID" 
     ,"EXT"; 
+0

안녕하세요, 네 결과는 두 개의 열을 반환해야하지만 두 개의 열이 동일한 결과를 가지므로 하나를 제거합니다 ... 편집하겠습니다. –

+0

또한 UNION ALL을 사용합니다. –

2

그것은 상단에 하나 개의 임의의 값을 넣어 매우 쉽게 명부.

select 'ALL', 1 
from dual 
union 
select your_column_name, 2 
from tablea 
order by 2, 1 

기본적으로 정렬 순서를 지정하고 있습니다.

나에게 조금 이상한 "-"를 포함 시키려면 세 번째 선택 물과 다른 결합 물을 사용하십시오.

select 'All', 1 
from dual 
union 
select '--', 2 
from dual 
union 
select your_column_name, 3 
from tablea 
order by 2, 1