WorkaHolic/MSSQL

MSSQL 컬럼과 구분자 연결하여 Select 하기

2010. 2. 25. 16:23
반응형
쿼리를 하다보면 컬럼을 구분자에 연결하여 컬럼1;컬럼2;컬럼3 같은 결과를 Select 할 경우가 있습니다.
MSSQL2000에서는 변수에 그 값을 넣어서 처리하였지만 MSSQL2005 에서 for xml 문을 써서 변수 없이 처리가 가능
합니다.

다음 쿼리는 둘다 똑같은 결과를 반환합니다. 참고하세요.

use pubs
go
-- MSSQL2000 방식
declare @names varchar(8000)
select top 10 @names = coalesce(@names,'') + name + ';' 
  from sysobjects 
where xtype = 'U'
  order by name
select @names as names

names
----------------------------------------------------------------------------------
authors;discounts;employee;jobs;pub_info;publishers;roysched;sales;stores;titleauthor;

(1개 행 적용됨)


-- MSSQL2005 방식
select (select top 10 name + ';' as [text()] 
              from sysobjects 
           where xtype = 'U'
            order by name for xml path('')) as names

names
----------------------------------------------------------------------------------
authors;discounts;employee;jobs;pub_info;publishers;roysched;sales;stores;titleauthor;

(1개 행 적용됨)
반응형