2014-04-15 2 views
0

SQL Server 2012 데이터베이스에는 두 개의 열이있는 테이블이 있지만 알고리즘의 값이 너무 길어서 처리 할 수 ​​없습니다.SQL Server - 기존 값에 따라 열에 새 값을 할당합니다.

두 columns' 값 I가 짧은 값으로 동일한 표 2에 다른 열을 생성 할

 
A | B, 
B | C, 
D | A 

같이 서로 연결 ID를 다른 테이블이다. 어떻게해야합니까?

는 기본적으로, 나는 모든 행에 대해

 
1 | 2, 
2 | 3 

 
1234567890 | 0987654321, 
0987654321 | 5432167890 

뭔가를 번역 할.

답변

0

새 기본 키와 외래 키가 모든 행에서 동일하다는 것을 보장하기 위해 커서 조작을 사용해야 할 것입니다.

+0

감사합니다. 더 설명해 주시겠습니까? 한 행을 "번역"할 때 커서 중 하나가 이전에 번역되어 동일한 ID를 제공하는지 커서가 알 수 있습니까? – npereira

0

"커서"개체를 사용하여 데이터를 번역 할 수 있습니다.

당신은 테이블에 그 분할하는 CTE를 사용할 수 있습니다 http://technet.microsoft.com/en-us/library/ms180169.aspx

+0

안녕하십니까, 답변 해 주셔서 감사합니다. 나는 그것을 읽었지만 커서를 어떻게 사용할 수 있는지 정말로 이해할 수 없다. 해보고 설명해 주시겠습니까? – npereira

0

봐 그런 다음

 
Declare @t table(ID INT IDENTITY , data varchar(max)) 
Insert into @t 
    Select '1234567890' 

;with cte as 
(
    select ID, 
     substring(data, 1, 1) as Chars, 
     stuff(data, 1, 1, '') as data, 
     1 as RowID 
    from @t 
    union all 
    select ID, 
     substring(data, 1, 1) as Chars, 
     stuff(data, 1, 1, '') as data, 
     RowID + 1 as RowID 
    from cte 
    where len(data) > 0 
) 
select Chars 
from cte 
order by ID, RowID 

당신이에 추가 또는 단위 중 다른 열에서 식을 만들어야합니다 제발 현재 행의 현재 값

관련 문제