행의 다음 값을 제공하는 저장 프로 시저를 작성하려고합니다.SQL Server에서 문자열의 모든 문자를 제거하십시오.
내 경우 참조 번호를 보내고 저장 프로 시저가 MIN
및 >
을 사용하여 다음 참조 번호를 반환합니다. 그러나 테이블의 심판 번호는 Varchar
을 int
으로 변환 할 때 오류를주는 123GF, 256ER, 25GD와 같은 문자를 포함합니다.
값을 전달 값과 비교하기 전에 비 숫자 숫자를 제거하는 방법은 무엇입니까?
이 내 현재 프로 시저 코드 :
select replace(Ref,'A','') from table --to cut off one char
select replace(replace(Ref,'A',''),'B','') from table --to cut off A and B char
: 당신이
다른 솔루션보다 기능을 대체 사용하고 같은 수행의 SQLServer를 사용하는 경우
CREATE PROCEDURE [dbo].nextprevious
@refId INTEGER,
@Next Bit
AS
BEGIN
SET NOCOUNT ON;
DECLARE @lReturn INTEGER
IF(@Next = 1)
SELECT REF
FROM TABLE
WHERE REF =(select MIN(REF)
FROM TABLE WHERE REF > @refId)
else
SELECT REF
FROM TABLE
WHERE REF =(select MAX(REF)
FROM [REF WHERE REF < @refId)
SELECT @lReturn = @@ROWCOUNT
RETURN @lReturn
END
GO
있습니까? 그것은 당신에게 "다음 행"의 가치를 줄 것입니다. –
은 항상 열의 첫 번째 숫자 값입니까? –
@ t-clausen.dk 예 – Yagzii