以下の関数は、複数ではなく 1 つのレコードを返します。これはScalar-valued
私が作成した関数です ...
ALTER FUNCTION [_SMDBA_].[ASSETTAG](@ticket int)
RETURNS VARCHAR(MAX)
AS
BEGIN
-- Declare the return variable here (asset#)
DECLARE @assettag VARCHAR(MAX)
-- Query to return all the tasset #s
SELECT @assettag = "Asset/Tag #"
FROM sde."_SMDBA_"."Inventory Items"
WHERE "Configuration ID" = (SELECT "Client ID"
FROM sde."_SMDBA_"."Incident"
WHERE "Incident #"=@ticket)
-- Return the result of the function
RETURN @assettag
END
複数の結果を返す方法はありますか?
@Andriy M ありがとうございました!! 私はtsqlにかなり慣れていないので、私のロジックに基づいて関数を作成しました!
私の関数の目的は、列の区切られた文字列値を表示することでした (理由は聞かないでください)。これが現在正常に動作している私のフィナーレ関数です。改善および/または変更するものがある場合はお知らせください。
ALTER FUNCTION [_SMDBA_].[ASSETTAG3](@ticket int)
RETURNS @result TABLE
(Asset# nvarchar(50))
AS
BEGIN
Declare @concat varchar(50)
set @concat=''
SELECT @concat=@concat + "Asset/Tag #" +' / ' from sde."_SMDBA_"."Inventory Items"
where "Configuration ID"=(select "Client ID" from "_SMDBA_"."Clients" where "Client Name"=(select "Req Full Name" from "_SMDBA_"."Incident" where "Incident #"=(@ticket)))
INSERT into @result
select @concat
RETURN
end;