안녕하세요 선생님들
쿼리를 짜다가 모르는 부분이 있의 문의드립니다.
아래의 테이블이 있습니다
이름 | 나이 | 남친 |
송혜교 | 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.[나이]