我有四個表:創建並且比在SQL Server參數的詳細執行功能
1 dbo.Projects(ID,項目名,區,PaymentSystem,location.id,purpose.id,types.id等)
2- dbo.Locations(ID,地點名稱)
3- dbo.Purpose(ID,Purposename)
4- dbo.Types(ID,typname)
我有一個搜索標準,這個標準我s充滿了數據庫表中的數據:位置,目的和類型,還有最大值和最小值的文本框。
我將與所有領域和最大值,最小值搜索 - 我達到這個查詢,但錯過了查詢來獲取或過濾器的最大和最小:
ALTER FUNCTION SearchProjects (
@location NVARCHAR(50),
@purpose NVARCHAR(50),
@type NVARCHAR(50),
@max nvarchar(50),
@min nvarchar(50))
RETURNS TABLE
AS
RETURN
(
SELECT p.ProjectName,
p.Areas,
p.PaymentSystem,
p.ReceivedDate,
p.PropertyClassification,
p.ProjectImage,
l.LocationName,
Pur.PurposeName,
t.TypeName
FROM dbo.Projects AS p
LEFT JOIN dbo.Locations AS l ON p.LocationID = l.ID
LEFT JOIN dbo.Purpose pur ON p.PurposeID = pur.ID
LEFT JOIN dbo.[Types] AS t ON p.TypeID = t.ID
WHERE UPPER(ISNULL(l.LocationName,N'')) LIKE N'%' + UPPER(@location) + '%'
AND UPPER(ISNULL(pur.PurposeName,N'')) LIKE N'%' + UPPER(@purpose) + '%'
AND UPPER(ISNULL(t.TypeName,N'')) LIKE N'%' + UPPER(@type) + '%'
AND p.Areas like @max
AND p.Areas like @min
)
GO
SELECT * FROM dbo.SearchProjects('','','','200','250');
你在問什麼?請具體說明。 –
我想通過最大和最小值的功能,然後返回過濾器的面積列的值,如果我在區域列值從100到300在每個記錄我想要通過最小值100和最大值200然後得到所有結果匹配與此值 – hashim
[在SQL Server中創建和執行函數]的可能重複(http://stackoverflow.com/questions/40719540/create-and-execute-function-in-sql-server) –