데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요 선생님들
쿼리를 짜다가 모르는 부분이 있의 문의드립니다.
아래의 테이블이 있습니다
이름 | 나이 | 남친 |
송혜교 | 35 | 원빈 |
이나영 | 38 | 원빈 |
김태희 | 37 | 정지훈 |
고두심 | 55 | 정지훈 |
제가 하고싶은 부분이
바로 윗 사람의 남친과 자기의 남친이 같으면
자기의 남친을 공백으로 처리하고싶은데
커서를 써서는 할수 있는데
데이터가 너무 많아서 시간이 많이 걸리네요
혹시 커서를 안쓰고 할수 있는 방법은 없을까요?
아래와 같이 나오고 싶습니다.
이름 | 나이 | 남친 |
송혜교 | 35 | 원빈 |
이나영 | 38 | |
김태희 | 37 | 정지훈 |
고두심 | 55 |
? DROP TABLE JOB.DBO.HAN_TEST_20150521
SELECT 1 AS NUM, '송혜교' AS [이름], 35 AS [나이], '원빈' AS [남친] INTO JOB.DBO.HAN_TEST_20150521 UNION ALL
SELECT 2 AS NUM, '이나영' AS [이름], 38 AS [나이], '원빈' AS [남친] UNION ALL
SELECT 3 AS NUM, '김태희' AS [이름], 37 AS [나이], '정지훈' AS [남친] UNION ALL
SELECT 4 AS NUM, '고두심' AS [이름], 55 AS [나이], '정지훈' AS [남친]
SELECT * FROM JOB.DBO.HAN_TEST_20150521
-- 정렬되는 번호가 있으면
UPDATE A
SET
A.[남친] = ''
-- SELECT *
FROM JOB.DBO.HAN_TEST_20150521 AS A
INNER JOIN JOB.DBO.HAN_TEST_20150521 AS B ON A.[남친] = B.[남친] AND A.NUM > B.NUM
-- 자신의 나이가 윗 사람보다 크다면
UPDATE A
SET
A.[남친] = ''
-- SELECT *
FROM JOB.DBO.HAN_TEST_20150521 AS A
INNER JOIN JOB.DBO.HAN_TEST_20150521 AS B ON A.[남친] = B.[남친] AND A.[나이] > B.[나이]