この単純なクエリに非常に悩まされています...
varcharにオフセットを追加する必要があります。数値の場合は、そうでない場合は何もしません。
このため、SQLサーバーで次の関数を作成しました。次に、次のように答えを抽出します。
select dbo.OffsetKPL("100",200)
しかし、これは機能しません、私はエラーを受け取ります
メッセージ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が変数を受け入れないとはどこにも述べられていません。