WITH 절은 CTE를 표현하기 위한 구문


CTE : Common Table Expression (공통 테이블 식)


CTE는 기존 뷰, 파생 테이블, 임시 테이블 등을 대신할 수 있으며 더 간결한 표현이 가능


CTE는 비재귀적, 재귀적 2가지가 있음






비재귀적 CTE

단순한 형태이며 쿼리분을 단순화 시키는 데에 적합


WITH CTE 테이블 이름 (열 이름)

AS

(

쿼리문

)

SELECT 열 이름 FROM CTE 테이블 이름;


WITH 절로 조회한 결과로 가상의 테이블을 만들어 select를 실행한다.


WITH 

AAA (열 이름)

AS (쿼리문),

BBB (열 이름)

AS (쿼리문), 

CCC (열 이름)

AS (쿼리문)

SELECT 열 이름 FROM CTE 테이블 이름;


위 형식처럼 중복 CTE도 가능하지만 BBB, CCC는 AAA의 참조가 가능하고 AAA는 아직 정의되지 않은 BBB, CCC를 참조할 수 없음




재귀적 CTE

재귀적 : 자신을 반복적으로 호출


WITH CTE 테이블 이름 (열 이름)

AS

(

<쿼리문1 : SELECT * FROM 테이블1>

UNION ALL

<쿼리문2 : SELECT * FROM 테이블1 JOIN CTE 테이블 이름>

)

SELECT 열 이름 FROM CTE 테이블 이름;


먼저 쿼리문1이 작동하고 다음에 쿼리문2가 작동하며 쿼리문2의 결과가 없을때까지 계속 재귀적으로 호출




SQL 2008 R2 설치후 위와 같이 구성 관리자에서 오류가 나는 경우가 있다.


간단하게 서비스팩을 설치하면 해결된다.

'MSSQL' 카테고리의 다른 글

저장 프로시저  (0) 2016.03.10
인덱스  (0) 2016.03.10
사용자정의 데이터 형식  (0) 2016.02.23
WITH 절과 CTE  (0) 2016.02.23
SSMS 서버 연결 실패시 확인사항  (0) 2016.02.19

mssql 설치 후 로컬 테스트시 다음 과 같은 이유로 서버에 연결이 불가능하다고 나올때가 있다.






제목: 서버에 연결

------------------------------


ㅁㅁㅁㅁ-PC에 연결할 수 없습니다.


------------------------------

추가 정보:


SQL Server에 연결을 설정하는 중에 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스할 수 없습니다. 인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (provider: Named Pipes Provider, error: 40 - SQL Server에 대한 연결을 열 수 없습니다.) (Microsoft SQL Server, 오류: 2)


도움말을 보려면 다음을 클릭하십시오: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476


------------------------------


지정된 파일을 찾을 수 없습니다


------------------------------

단추:


확인

------------------------------










'Ctrl + Alt + Del' 을 눌러 작업 관리자를 켠 뒤 서비스 탭으로 가서 MSSQLSERVER 서비스의 상태를 확인한다.




위와 같이 중지된 상태일 경우 오른쪽 클릭을 하여 서비스를 실행해준다.





'MSSQL' 카테고리의 다른 글

저장 프로시저  (0) 2016.03.10
인덱스  (0) 2016.03.10
사용자정의 데이터 형식  (0) 2016.02.23
WITH 절과 CTE  (0) 2016.02.23
[SQL 2008 R2] SQL Server 구성 관리자에서 원격 프로시저를 호출하지 못했습니다.  (0) 2016.02.22

+ Recent posts