0
我想定製此存儲過程,以防萬一param值@TownId爲null將返回表中的所有數據。否則返回正確的數據。 在我的表中,TownId列中沒有空值。有nvarchar值。 我沒有成功獲取所有的數據,如果我送@ TownId = null,以從客戶端如果參數爲null,則返回所有值
ALTER PROCEDURE dbo.GetCustomersPageWiseWithTown
@PageIndex INT = 1
,@PageSize INT = 10
,@PageCount INT OUTPUT
,@TownId int
AS
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
order by IsPaid desc
)AS RowNumber
,b.Id
,b.Name
,b.Phone1
,b.Town
,b.Addess
,b.IsPaid
,b.DefaultImage
,t.TownName
INTO #Results
FROM BusinessFullData b
Left JOIN Towns t ON b.Town = t.Id
where ((b.IsVisable=1) and ([email protected]))
DECLARE @RecordCount INT
SELECT @RecordCount = COUNT(*) FROM #Results
SET @PageCount = CEILING(CAST(@RecordCount AS DECIMAL(10, 2))/CAST(@PageSize AS DECIMAL(10, 2)))
PRINT @PageCount
SELECT * FROM #Results
WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
DROP TABLE #Results
RETURN
多謝提醒,
這不是正確的,在這種情況下,什麼都不會回來了,因爲在該表中的TownId值沒有空值。 – user2274204 2015-03-31 21:39:40
@ user2274204再看一遍。空檢查在參數上,而不是在表列中。 – 2015-03-31 21:51:09
@ user2274204沒關係。如果該參數爲null,則「@TownId IS NULL」將成立,第二個條件不起作用。 – 2015-03-31 21:58:52