가 나는 TABLEA 있습니다 (아이디 INT, 배치 INT, new_batch의 int)를SQL 서버 : DENSE_RANK()
ID 및 배치가 이미 채워집니다 :
ID Batch New_Batch
1 01 NULL
2 01 NULL
3 02 NULL
4 02 NULL
5 02 NULL
6 03 NULL
7 04 NULL
8 05 NULL
지금 내가 따라 New_batch 채우려을 다음 select 문으로 이동하십시오.
(select batch from tableA where id in (3,8))
- 이제이 select 문, 우리는 배치 = 02 및 배치 = 5를 얻을. 이제 select 문 결과가 먼저 정렬되어야하며 (batch02, batch05) new_batch를 할당하고 나머지 데이터는 select 문에서 배치 순서가 아닌 순서대로 정렬되어야합니다. (배치 1,3,4) 결과가 있어야한다 :
ID Batch New_Batch
1 01 03
2 01 03
3 02 01
4 02 01
5 02 01
6 03 04
7 04 05
8 05 02
감사합니다. 추 신 : DENSE_RANK()를 사용할 수 있으며 하드 코드를 사용하지 마십시오!
하지 하드 코드 무엇을합니까를? 누군가가 당신에게 8 개의 진술서를 줄 것이라고 생각합니까? –
아니, 제 2의 1.와 같은 케이스 배치를 사용하지 말아요. 당신이 다른 포럼 *에서 얼마나 재밌는 반응을 보일지 믿지 않을 것입니다. * –
. 만약 당신이'id in (8,3)' ** 다른 ** 결과를 반환해야합니까? –