2010-06-30 2 views
3

내가하려고하면 누락 된 표현의 오류, 연결 '|| '을 (를) 사용하는 방법 SELECT 쿼리의 다른 절이 있습니까?

SELECT 'label1:'||distinct col1 from tab1; 

이 오류 주위에 얻을 수있는 방법이 있나요? 미리 감사드립니다.

편집 : 전체 쿼리는 다음과 같습니다 distinct가 잘못된 위치에 있기 때문에

SELECT 'label1:'||distinct col1 from tab1 order by col1; 
+2

그냥 'label1 :'앞에 뚜렷하게 입력 해보세요! 손가락이 건넜다. – Preets

+1

@Preets 그것도 작동하지 않습니다. – cctk11

답변

3

이 하나를 시도하십시오

SELECT DISTINCT 'label1:' || col1 
FROM tab1 order by 1; 
+0

감사합니다. 마지막에 '1'에 대한 작동 방식을 설명해 주시겠습니까? – cctk11

+0

"1"은 열 위치를 지정합니다. 즉, 열 순서를 수행해야합니다. order by 2,1을 지정한 경우 두 번째 열에서 수행 한 다음 쿼리에서 첫 번째로 수행합니다. – Bharat

+2

@ cctk11 열 인덱스별로 정렬합니다. (즉, 결과 집합의 첫 번째 및 유일한 열). 선택에 다른 열을 추가하고 순서를 업데이트하는 것을 잊어 버리면 덜 허약하기 때문에이 연습과 열 별칭을 대신 사용하지 않아야합니다. –

2

첫 번째 오류입니다.

SELECT distinct 'label1:'|| col1 as c 
from tab1 
ORDER BY c; 

두 번째 설명은 col1로 주문했기 때문입니다. 위와 같이 별칭을 사용하여 새 열 및 별칭을 별칭 지정해야합니다.

SELECT DISTINCT 'label1:' || col1 
FROM tab1 

업데이트 :

것은 만들려면

+1

ORA-01791-SELECTED 식 오류가 아닙니다. – cctk11

+0

그냥 그 봤 거든 그 ORDER By 절과 관련이있는 것 같습니다. 전체 * 쿼리를 게시 할 수 있습니까? –

+1

아 맞아!. 업데이트를 참조하십시오. – cctk11

2

DISTINCT이 컬럼의 기능 SELECT 조항의 일부가 아닌 (당신이 원하는 경우에 당신이 별칭으로 col1을 사용할 수 있습니다) ORDER BY와 함께 사용,

SELECT 'label1:' || col1 
FROM (
     SELECT DISTINCT col1 
     FROM tab1 
     ) 
ORDER BY 
     col1 
+0

감사합니다. 나는 그 부분을 놓쳤습니다. – cctk11

관련 문제