database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 5910 게시물 읽기
No. 5910
빈행만들기...
작성자
조중규(biosensor)
작성일
2011-06-29 01:10ⓒ
2011-06-29 01:12ⓜ
조회수
8,531

어떤 테이블에 3개의 행이 있다면 쿼리에서 3개의 행을 포함하여 총 10개의 행이 강제로 출력되게 하는 방법이 있을까요?

 

프로그램에서 하면 쉽지만 전 쿼리에서 하고 구현하고 싶습니다. 예전에 더미테이블을 하나 만들어서 아우터조인으로 억지로 만들기도 했습니다만 또 이 방법을 쓰려니 좀 구식같아서요...

 

더미테이블이나 커서를 쓰지 않고 깔끔한 한방쿼리로 구현할수 있는 방법을 소개해주신다면 정말 감사드리겠습니다.

 

아래는 출력예입니다. (SQL Server 2005)

Q 값1
Q 값2
Q 값3
Q [length가 0인 문자열]
Q [length가 0인 문자열]
Q [length가 0인 문자열]
Q [length가 0인 문자열]
Q [length가 0인 문자열]
Q [length가 0인 문자열]
Q [length가 0인 문자열]

 

이 글에 대한 댓글이 총 2건 있습니다.

 with t as (

select 'Q' cd, '값1' val union all
select 'Q', '값2' union all
select 'Q', '값3'
)
select min(a.cd)over() cd
     , a.val
  from (
         select cd
              , val
              , row_number()over(order by val) rn
           from t
       ) a right outer join
       (
         select number rn
           from master.dbo.spt_values b
          where number > 0
         group by number
       ) b
    on b.rn  = a.rn
 where b.rn <= 10
 
where b.rn <= 10 --> 10은 필요한 값으로 정정하면 됩니다.
master.dbo.spt_values --> mssql 에서 제공하는 system 테이블
 
知音(sunnylee72)님이 2011-06-29 08:10에 작성한 댓글입니다.

오.. 굉장히 유용한 방법이네요. @@

정말 감사드립니다.

글쓴이님이 2011-06-30 14:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5914integration services 가 안살아 납니다.ㅠㅠ
산들이
2011-07-06
6133
5913두개 컬럼을 in 술어에 대입하는 것에 대한 질문입니다.~ [2]
정필준
2011-07-02
6525
5912금액별 볼수 있도록 쿼리? [2]
유통주스
2011-07-01
7143
5910빈행만들기... [2]
조중규
2011-06-29
8531
5909쿼리분석기에서 쿼리문 보기
궁금이
2011-06-27
6315
5908디비 통합 관련 질문 드립니다.
윤영덕
2011-06-22
6826
5907로그인,로그오프 로그에 관한질문
김형태
2011-06-20
6451
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다