행에 대한 참고가있을 때 증분 인덱스를 가져 오려고합니다. ROW_Number() 함께 동일한 얻으려고 노력하고 있지만 그것을 생성하는 데 사용되는 메서드에 문제가있는 것 같습니다. 예상특정 행에 대한 증분 인덱스 가져 오기
SELECT * RowNo,
(SELECT CASE
WHEN LEN(Value) > 0 THEN ROW_NUMBER()
OVER (
ORDER BY ID)
ELSE ''
END
FROM Dictionary
WHERE ID = ABC.ID) Note
FROM ABCD AS ABC WITH(NOLOCK)
INNER JOIN XYZ AS XYZ WITH(NOLOCK)
ON ABC.Id = XYZ.ID
WHERE ABC.Id = 10
출력 :
ID Name Note
1 A 1
2 B
3 C 2
4 D
5 E
6 F 3
'CASE ... integer_expression ELSE ''END'는 암시 적으로 ''를 'int'로 변환하여 0이됩니다. –
좋은 캐치. 이것은 OP의 코드이므로 입력을 기다릴 것입니다. 그는 0을 허용하거나, else를 제거하고, null을 허용하거나, row_number를 varchar로 변환하여 빈칸을 가질 수 있습니다. –