2012-03-30 5 views
1

의 내가 같은 테이블이 있다고 가정 해 봅시다 :순수한 SQL로이 작업을 수행 할 수 있습니까?

name   |order_id 
======================= 
first_record | 0 
second_record | 0 
third_record | 0 
     [...] 

내가 증가 된 값으로 만 order_id을 업데이트 할 (영어로 올바르게을 넣어하는 방법을 잘 - 더 나은 설명과 함께 편집 주시기 바랍니다). 예상 출력은 아래를 참조하십시오 :

name   |order_id 
======================= 
first_record | 1 
second_record | 2 
third_record | 3 
     [...] | n 

가 나도 몇 가지 프로그래밍 언어 또는 SQL 프로 시저에서 스크립트를 사용하여이 작업을 수행하는 방법을 알고, 두 솔루션은 전체 테이블을 반복하는 것을 포함한다.

+0

어떤 열이 어떤 order_id입니까? – safarov

+0

간단한 오라클 rownum 이외의 다른 요구 사항이 있습니까? – cctan

+0

@safarov 어떤 이름이든 상관 없다. – Bogdan

답변

3

당신은 업데이트 할 수 테이블 :

SET @oo = 0; 
UPDATE table SET `order_id`[email protected]:[email protected]+1 ORDER By something; 

또는 선택하는 동안 바로 반환 행 번호로 ORDER_ID 수 :

SET @oo = 0; 
SELECT name, @oo:[email protected]+1 order_id FROM table ORDER By something; 
+0

그게 내가 찾고 있던거야. 그것은 MySQL을 위해, 지금은 hsqldb에 대한 구문을 알아낼 필요 :) 작동 – Bogdan

0

는이 같은 것을 의미합니까? 그 질문은 분명하지 않습니다.

DECLARE @order_id int 
SET @order_id = 0 
UPDATE #tmp_Users 
SET @order_id = order_id = @order_id + 1 
관련 문제