2010-06-21 6 views
0

임의의 숫자 목록을 선택에 대한 입력으로 사용하고 싶습니다. 옵션 A는 물론 값 (예 : 1,2,3) 만 포함하는 임시 테이블을 만드는 것입니다.Teradata SQL : 리터럴을 선택하십시오.

여러분은 Option> A가 무엇인지 알기를 바랍니다.

는 문이 같은 가정 해 봅시다 :

My val | Foo 
    -------+--- 
     cat | 1 
    mouse | 2 
cheesecake | 3 
: 나는 마술 XXXXXX에게 값 목록 (1,2,3)을 만들 수 있다면

select Fx, 
XXXXXX as Foo 
from MyTable 
where MyTest depends on each XXXXXX 

그래서,이 같은 결과 집합이있을 것이다

다시 말하지만, 테이블에서 입력을 소스화할 수 있지만 필요하지 않은 경우에는 사용하지 않는 것이 좋습니다. 구루 스는 안으로 들어 오세요.

TIA.

+0

정말 물어 보는 것이 확실하지 않습니다. 좀 더 명확히 해 주시겠습니까? 숫자 표에 합류하는 데 관심이 없다는군요, 맞습니까? x와 y 사이에서 값을 선택하려고하십니까? 아니면 목록을 만들고 (IN) 일치하는 값만 되돌리려는 것입니까? 고밀도 인 것에 대해 사과한다. –

답변

1

ROW_NUMBER() 창 집계 함수를 사용하면 성공할 수 있습니다.

무작위로

SELECT CALENDAR_DATE 
    , YEAR_OF_CALENDAR 
    , ROW_NUMBER() 
     OVER (PARTITION BY YEAR_OF_CALENDAR 
      ORDER BY CALENDAR_DATE) 
FROM SYS_CALENDAR.CALENDAR 
WHERE CALENDAR_DATE BETWEEN DATE '2009-11-01' AND DATE 
; 

시퀀스를 다시 다른 열에 의한 열

SELECT CALENDAR_DATE 
    , ROW_NUMBER() 
     OVER (ORDER BY CALENDAR_DATE) 
FROM SYS_CALENDAR.CALENDAR 
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE 
; 

또는 분할하여

SELECT CALENDAR_DATE 
    , ROW_NUMBER() 
     OVER (ORDER BY 1) 
FROM SYS_CALENDAR.CALENDAR 
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE 
; 

OR 주문;