2013-08-27 5 views
0

계산 된 값을 별칭 이름의 일부로 사용하는 방법을 찾으려고합니다. 예를 들어SQL에서 값을 별칭 이름으로 계산할 수 있습니까?

: 추가 기능 예선을 '이름 오 사람을'+ ''사람의 이름을 '하지만 여기서'사람의 이름은 'GETDATE 수()와 같은

선택 employeeName은 계산에서 내부의 코드를 방지 할 수 있습니다.

어떤 방식 으로든 가능합니까? 파티션을 사용하여 연도별로 결과를 그룹화하고 열 별칭을 사용하여 해당 연도를 기반으로합니다.

+1

당신은 같은 변수 이름을 동적 SQL을 사용해야합니다. 즉, SQL을 문자열로 작성한 다음 실행해야합니다. –

+0

나는 그렇게 생각하지 않는다. 두 개 이상의 행을 반환하는 쿼리의 경우 모호성 문제가있을 수 있습니다. –

답변

1

당신이 찾고있는 무엇하지만 좋은 시작이 될 수 있다면 나도 몰라 :

DECLARE @var table(rownum int, rowkey varchar(60), ALIAS varchar(80)) 
INSERT INTO @var SELECT row_number() over (ORDER BY employeeName), employeeName, cast(getdate() AS varchar(12))+employeeName FROM Table1 
DECLARE @query varchar(500) 
DECLARE @rowkey varchar(60), @i int, @max int 
SET @i = 1 
SET @max = (SELECT count(*) FROM @var) 
SET @query = '' 
WHILE @i <= @max 
BEGIN 
    SET @rowkey = (SELECT rowkey FROM @var WHERE rownum = @i) 
    SET @query = 'select employeeName as "'+(SELECT ALIAS FROM @var WHERE rowkey = @rowkey)+'" from Table1 where employeeName = '''[email protected]+''';' 
    exec(@query) 
    SET @i = @i + 1 
END; 
0

단일 값만 기대하는 경우 테이블 변수를 사용할 수 있습니다. 그러나 여러 행이 작성되면 사실상 임시 테이블이됩니다. 가능성이 있다고 생각되면 임시 테이블로 선언하십시오.

관련 문제