데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요.
문의 드리고자 합니다.
우선 프로시져로 하려고 합니다.
A 테이블에 RawData 가 들어 잇습니다. 1200건 정도의 데이터가 있습니다(항상 고정은 아님)
@strRate 변수에 값을 할당받습니다.
전체 인원수에서 5% 또는 10% %이용하여 A 테이블에 대상을 추출하고자 합니다
vharchar 타입으로 @Rate 변수를 하나 받습니다.
전체 인원 모수를 구합니다.
declare @nCnt int;
select @nCnt = count(*) / @Rate from A
@nCnt 값을 항당 받습니다.
할당 받은 값을
동적쿼리에 넣어 주는데 오류가 발생됩니다.
Declare @qey varchar(2000)
@qry = 'select top ' + @nCnt +' 컬럼......' +
' from a order by newid()'
Exex(@qry)
이렇게 하면
Select top '을 데이터 형식 int로 변환하지 못했습니다..
라는 sql오류가 발생 합니다.
Top에서 변수를 활용하여 값을 받아올수 있는 방법은 없는가요?
+ convert(varchar,@nCnt) +
--
Declare @qry varchar(2000) , @nCnt int , @Rate decimal(12,2);
set @Rate = 10
select @nCnt = count(*) / @Rate from A
select top (@nCnt ) * from A order by newid()