CREATE PROCEDURE [dbo].[GetCustomers_Pager]
@SearchTerm VARCHAR(100) = ''
,@PageIndex INT = 1
,@PageSize INT = 10
,@Type INT = 10
,@RecordCount INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
ORDER BY [CustomerID] ASC
)AS RowNumber
,[CustomerID]
,[CompanyName]
,[ContactName]
,[City]
INTO #Results
FROM [Customers]
WHERE [Customers].CustomerID is not null
############## บรรทัดนี้จะใส่ if @Type > 0 then and Type=@Type end if ################## ต้องทำยังไงครับ
SELECT @RecordCount = COUNT(*)
FROM #Results
SELECT * FROM #Results
WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
DROP TABLE #Results
END
WHERE [Customers].CustomerID is not null
############## บรรทัดนี้จะใส่ if @Type > 0 then and Type=@Type end if ################## ต้องทำยังไงครับ
คือมี WHERE [Customers].CustomerID is not null อยู่แล้วแต่ว่าผมอยากเพิ่มเงื่อนไขเข้าไปอีกครับ ถ้าในกรณี @Type มีค่า ถึงจะเพิ่ม and เข้าไปแต่ผมไม่รู้จะใช้รูปแบบอะไรเพิ่มเข้าไปครับ
ผมลองใช้
WHERE [Customers].CustomerID is not null
if @Type > 0 BEGIN and Type=@Type end
DECLARE @Type INT = 0
DECLARE @Condition VARCHAR(500)=' AND EmpOID=0'
DECLARE @WhereClause VARCHAR(MAX)
IF @Type > 0
SET @WhereClause= 'SELECT * FROM fm_tb_Comment WHERE ObjectID=1'+@Condition
ELSE
SET @WhereClause= 'SELECT * FROM fm_tb_Comment WHERE ObjectID=1'
EXEC(@WhereClause)