2016-10-27 5 views
1

의 매 2 개 행을 2 행의 고유 ID를 할당 내가 여기에 조금 어색 제목을 모호하게 만 생각하는 내 문제입니다 테이블의 다른 모든 2 행에서 별도의 unique ID. 1 행과 2 행 그래서 행 3, 4, 테이블의 나머지와는 다른 ID이 필요합니다. "심볼"을 반복 할 수 있습니다. 서로 "B"와 "S"가 항상 묶여 있지만 현재 ID는 연결되어 있지 않습니다. ExecID 및 OrderID를 항상 진정으로 순차적되지 않습니다 (예 : 010001, 010002)하지만 순서에있을 것입니다. 나는 CASE WHEN의 몇 가지 변화를 시도했다 그러나 나는 트릭을 할 것입니다 아무것도 생각할 수 없다.SQL : 나는 모든 2 개 행을 가질 필요가있는 다음과 같은 <code>Sybase</code> 테이블이</p> <p>: 데이터

가장 좋은 방법은 무엇입니까? 출력의

Symbol | Sell-Buy | ExecId | OrderId | RowNum | 
--------------------------------------------------- 
W  | B  | 64240624 | 101773407 | 1  | 
W  | S  | 64240625 | 101773408 | 2  | 
XM  | B  | 64240626 | 101773409 | 3  | 
XM  | S  | 64240627 | 101773410 | 4  | 
GV  | B  | 64240628 | 101773411 | 5  | 
GV  | S  | 64240629 | 101773412 | 6  | 

.... 

W  | B  | 64240679 | 101773455 | 49  | 
W  | S  | 64240680 | 101773456 | 50  | 

목표 : 당신이 될 것입니다 여기에 사용할 수

Symbol | Sell-Buy | ExecId | OrderId | RowNum | 2RowId | 
------------------------------------------------------------ 
W  | B  | 64240624 | 101773407 | 1  | 000001 | 
W  | S  | 64240625 | 101773408 | 2  | 000001 | 
XM  | B  | 64240626 | 101773409 | 3  | 000002 | 
XM  | S  | 64240627 | 101773410 | 4  | 000002 | 

.... 

W  | B  | 64240679 | 101773455 | 49  | 000025 | 
W  | S  | 64240680 | 101773456 | 50  | 000025 | 

답변

1

한 트릭 2로 나눈 현재 행 번호의 천장 취할 : 여기

UPDATE yourTable 
SET 2RowId = CEILING(RowNum/2) 

인 수학이 해결 방법을 보여주는 테이블 :

RowNum | RowNum/2 | ceiling(RowNum/2) 
1  | 0.5  | 1 
2  | 1  | 1 
3  | 1.5  | 2 
4  | 2  | 2 
... | ...  | ... 
+0

그래, 저기있다! 감사! 나는 그 게시물이 나에게 대답 할 때 정확한 답을 표시 할 것이다. – plankton

+1

미국 영어에서 말이 :-) "거기는, 실컷 놀고"될 것 –