2016-06-01 1 views
0

나는 초기 결과 집합에 대해 계산을 수행하는 여러 개의 with 문이있는 SQL 쿼리 (server 2012)가 있습니다. 각각의 with 문을 임시 테이블에 삽입하는 방법이 있습니까?여러 개의 with가 포함 된 insert 문 사용

그런 다음 결과를 좋은 형식으로 보려면 선택을 수행 할 수 있습니다.

다음은 SQL 코드의 예입니다. 진짜 질의는 매우 길기 때문에 그것을 게시하고 싶지 않습니다. 이렇게하는 방식이 완전히 다른 경우 나는 모두 귀입니다.

with tce as (Select cash from sometable), 
test1 as (((select * from tce) * 100) as morecash), 
test 2 as (((select * from test1) * 100) as evenmorecash) 
+0

첫째 -은'당신은 CTE 또는 공통 테이블 표현식입니다 참조 WITH'. 이것은 윈도우 함수이며 쓰여지는 방식에 따라 스칼라 함수처럼 성능이 떨어질 수 있으므로주의하십시오! 코드를 보지 않으면 여기에있는 사람이 최선의 사례인지 아닌지를 말할 수있는 방법이 없습니다. 그럼에도 불구하고 우리는 시스템, 공통로드, 사용자 수, 서버/데이터베이스 설정 (병렬 처리, 추적 플래그 등)을 알지 못합니다. –

+0

유효한 구문입니까? (select * from tce) * 100 – Paparazzi

+0

각 cte를 임시 테이블에 삽입하는 이유는 무엇입니까? 왜 그들에게서 선택을하면 안되나요? –

답변

3

그냥 임시 테이블의 삽입으로 열팽창 계수를 확장

-- Query 1 
SELECT cash 
INTO #temp1 
FROM sometable; 

-- Query 2 
SELECT cash * 100 as morecash 
INTO #temp2 
FROM #temp1 

-- Query 3 
SELECT morecash * 100 as evenmorecash 
INTO #temp3 
FROM #temp2; 

-- Output 
SELECT * 
FROM #temp3;