CREATE PROCEDURE [dbo].[SearchExample] ( @userId UNIQUEIDENTIFIER = NULL, --set all parameters' default value to null @firstName NVARCHAR(50) = NULL, @lastName NVARCHAR(50) = NULL, @address NVARCHAR(100) = NULL, @zipcode INT = NULL ) SELECT ... --omit FROM dbo.UserInfo u WHERE u.userId = COALESCE(@userId, u.userId) AND u.firstName LIKE ('%'+ COALESCE(@firstName, u.firstName)+'%') AND ... --omit ... --omitSet the default value to null for all the input parameters is because if we don't have any filter to search (the value is null), then COALESCE() will use the second parameter as the output, otherwise it will output the first parameter.
For example, if @userId = 1001, the
WHERE u.userId = COALESCE(@userId, u.userId)will become like
WHERE u.userId = 1001Otherwise, it will become like
WHERE u.userId = u.userId
No comments:
Post a Comment