2011-09-11 4 views
0

를 사용하여 해당 열의 번호를 생성 : 기본적으로새 열을 만들고 난 아래 테이블이 TSQL

employee_name employee_address employee_no 
RON   23-B, TORONTO  1 
PETER   15-C, NY   2 
TED   23-C, LONDON  3 
RON   23-B, TORONTO  1 

다음과 같이 나는이 테이블에 새 열을 추가 할 필요가

employee_name employee_address 
RON   23-B, TORONTO 
PETER   15-C, NY 
TED   23-C, LONDON 
RON   23-B, TORONTO 

을 employee_name 및 employee_address 열이 다른 경우 고유 한 번호를 할당해야합니다. 이 두 열이 동일하면 위 표와 같은 번호를 지정하십시오. TSQL을 사용하여이 작업을 수행해야합니다. 아무도 도와 줄 수 있습니까?

감사합니다. 질문에 대답하려면

+0

무엇 rdbms/버전? –

+0

SQL Server 2008 R2를 사용하고 있습니다. – CPDS

답변

0

/*To add the new column*/ 
ALTER TABLE emps ADD employee_no INT NULL 

/*To populate it*/ 
;WITH T 
    AS (SELECT employee_no, 
       dense_rank() OVER (ORDER BY employee_name, employee_address) AS 
       new_employee_no 
     FROM emps) 
UPDATE T 
SET employee_no = new_employee_no 

을 요청하지만이에 대한 사용 사례 무엇인가? 이 3 개의 열만있는 경우 중복을 삭제하고 identity 열을 추가하십시오.

질문에 나와 있지 않은 추가 열이 있어도 행이 정확한 중복이 아닐지라도 2 열로 재분할되어야하는 비정규 화 된 테이블이 남아있게됩니다.

+0

잘못된 열 이름이 나타납니다. employee_no – CPDS

+0

그 열을 테이블에 추가 할 수는 없습니다. 그러나 왜 당신이 이것을하고 있는지 나의 질문을보십시오. –

+0

아니요 중복이 필요하며 위의 쿼리는 중복을 제거합니다. – CPDS

관련 문제