데이터베이스 테이블에 clnum 인 varchar 열이 있습니다. 숫자이지만 앞에 오는 0을 포함 할 수 있습니다. C# .Net 프로그램에서 숫자 X의 사용자 입력이 주어진다면 다음 번호가 테이블에 존재하지 않는 것을 판별하여 사용자에게 표시해야합니다. 이는 SQL 서버 2008입니다 내가 어떤 선행 0을 벗겨은 T-SQL 저장 프로 시저 결과 수를 통과하고,이 할 수 있습니다 수행 할 수 있습니다문자열을 사용한 T-SQL 간격
CREATE PROCEDURE [dbo].[getNextClientNum]
@ModelNumber AS int
AS
;WITH UsedNumbers (clnum, clname1)
AS
(
SELECT clnum, clname1
FROM QueuedClientMatters
),
OrderedNumbers (clnum, clnum_int, clname1)
AS
(
SELECT TOP 500000 clnum, CAST(clnum AS int) AS clnum_int, clname1
FROM UsedNumbers
WHERE CAST(clnum AS int) > @ModelNumber
ORDER BY clnum
)
SELECT TOP 1 previd
FROM (SELECT clnum_int, LAG(clnum_int) OVER (ORDER BY clnum) previd
FROM OrderedNumbers) q
WHERE previd <> clnum_int - 1
ORDER BY clnum_int
그때 그렇게 previd 다시 앞에 0을 추가 내 C# 프로그램에서 길이가 6 (모든 clnum은 항상 6 자리)입니다. 하지만 앞에 오는 0을 제거하고 다시 추가하는 방법이 있습니까?
계산 된 열을 테이블에 추가하여 'clnum'의 정수 값을 제공한다고 생각하십니까? 그것은 지속되고 색인 될 수 있습니다. – HABO
테이블은 우리 회계 시스템의 일부이며, 그렇게 할 수 없습니다. 그렇지 않으면 좋은 생각이 될 것입니다. 감사합니다. – Melanie