이 간단한 쿼리로 매우 짜증이났습니다 ...
숫자 일 경우 varchar에 오프셋을 추가하고 그렇지 않으면 아무것도하지 않아야합니다.
SQL 서버에 다음과 같은 기능을 생성했습니다. 나는 다음과 답 추출 : select dbo.OffsetKPL("100",200)
IsNumeric이 SQL 서버에서 작동하지 않습니다
그러나이 작동하지 않습니다, 나는 오류
메시지 207, 수준 16, 상태 1, 줄 1
잘못된 열 이름 '100에게'얻을.
다음과 같다 함수에 대한 코드 ...
ALTER FUNCTION [dbo].[OffsetKPL](
@kpl varchar(20)
,@offset int = 0
)
RETURNS varchar(20)
AS
BEGIN
DECLARE @uitkomst varchar(20);
set @uitkomst = @kpl;
if not(@offset = 0) begin
if (IsNumeric(@uitkomst) = 1) begin
set @uitkomst = cast((cast(@kpl as int) + @offset) as varchar);
end;
end;
RETURN @uitkomst;
END
문제점은 무엇입니까? IsNumeric이 변수를 허용하지 않는다는 것은 어디에도 없습니다.
'100'대신 '100'을 사용 하시겠습니까? – cairnz