QnA
|
사용언어 (칠해주세요) => (오라클,MS-SQL,MYSQL,SYBASE,DB2) |
select id, pw from memeber where use = 'Y'
select id, pw from memeber where use = 'N'
이 두 쿼리문을 합쳐서 조회하는 쿼리를 만들려고 하는데 잘안됩니다.
합친다는게 무슨말이냐면
예를 들어 첫번째 쿼리 결과 값이
id pw
aa 11
두 번째 쿼리 결과값이
id pw
bb 22
라고 가정한다면
제가 말하는 합쳐서 조회된다는 결과값은
id pw id pw
aa 11 bb 22
이렇게 같이 나오게 하고 싶습니다. 같은 테이블을 바라보고 where 조건만 다릅니다.
다음검색
댓글
댓글 리스트-
작성자퇴근5분전 작성시간 15.11.22 두개의 연관 관계가 전혀 없는 테이블이니 키를 하나 만드셔야 겠죠?
select a.id, a.pw, b.id, b.pw
from (
select Row_Number() over( order by id ) as [no], id, pw from memeber where use = 'Y'
) a inner join
(
select Row_Number() over( order by id ) as [no], id, pw from memeber where use = 'N'
) b
on a.[NO] = b.[NO]
양쪽 갯수가 다를 경우를 대비해서 fullouter join 으로 검색해서 만들어 보세요.
-
작성자김형태 작성시간 15.11.25 CASE 문으로 해도 되겠네요
-
답댓글 작성자퇴근5분전 작성시간 15.11.26 case문으로 어떻게 만드는지 알수 있을까요? 좀 해보고는 있는데 쉽지 않네요?
-- 아래 쿼리는 full outer join 으로 만든 건데요...
;with o
as (
select id, pwd, used
from (
values
( 'aa', '11', 'y'),
( 'bb', '22', 'n'),
( 'cc', '33', 'y'),
( 'dd', '44', 'y'),
( 'ee', '55', 'n')
) tb ( id, pwd, used)
)
select *
from (
select row_number() over( order by id ) as [no], id, pwd
from o
where used = 'y'
) a
full outer join
(
select row_number() over( order by id ) as [no], id, pwd
from o
where used = 'n'
) b
on a.[no] = b.[no] -
작성자김형태 작성시간 15.11.26 생각해보니 CASE는 아닌거 같네요 WITH 문이 제일 나을듯 합니다
둘사이에 키는 필요없을듯 하여
WITH USE_LIST AS
(
SELECT ID, PW
FROM MEMBER
WHERE USE='Y'
),
NOT_USE_LIST AS
(
SELECT ID, PW
FROM MEMBER
WHERE USE='N'
)
SELECT U.ID, U.PW, N.ID, N.PW
FROM USE_LIST U, NOT_USE_LIST N
-
답댓글 작성자퇴근5분전 작성시간 15.11.26 아... 그렇군요.
cross join 하면 뻥튀기 되는거 아닌가요? ^^;;
답변 감사합니다. 추운데 감기 조심하시고 즐거운 하루 되세요.