次のSQL関数があります
ALTER FUNCTION FunctionTEST (@itemID bigint) RETURNS table AS RETURN
(
(SELECT top 1 Pic_Path from PictureDetails WHERE PictureDetails.Item_ID = @itemID)
)
この関数は、指定されたパラメーターに対して見つかった場合、一番上の行を返します。パラメータに対してレコードが見つからない場合、この関数は空の行を返します。簡単な作業だと思いますが、SQL関数に慣れていません。以下は、関数を呼び出すために使用している実際のクエリです。
SELECT
NewClientTB.FirstName, NewClientTB.LastName, NewClientTB.EMail, NewClientTB.ContactNo,
ADDetails.AD_ID, ADDetails.AD_EXactAddress,
ADDetails.AD_PostingTime, ADDetails.AD_Description, ADDetails.AD_Title,
ItemDetails.Item_ID, ItemDetails.Item_Price,
Regions.R_Description,
Cities.C_Name,
GCategories.GC_Description,
SCategories.SC_Description,
PictureDetails.Pic_Path
FROM NewClientTB, ADDetails,ItemDetails, Regions, Cities, GCategories,
SCategories, PictureDetails
WHERE FREETEXT (ADDetails.AD_Title, 'selling')
AND FREETEXT (ADDetails.AD_Description, 'selling')
AND ADDetails.AD_PosterID = NewClientTB.UserID
AND ADDetails.AD_ID = ItemDetails.AD_ID
AND Regions.R_ID = ADDetails.AD_Region
AND Cities.R_ID = ADDetails.AD_Region AND Cities.C_ID = ADDetails.AD_City
AND ItemDetails.Item_GCategory = GCategories.GC_ID
AND ItemDetails.Item_SCategory = SCategories.SC_ID AND ItemDetails.Item_GCategory =
SCategories.GC_ID
AND PictureDetails.Pic_Path = (select * from dbo.FunctionTEST(ADDetails.AD_ID))