During a stored procedure, if you want to implement a WHERE clause dynamic query for a select query, you can use the EXEC ("Select .... where" [email protected]) method. But in this case, the feeling of using stored procedures is useless, because the most important feature of the stored procedure is to compile the code in the DBMS, and call the Exec, this part can not be compiled, it is impossible to optimize. The following is a clever way to implement the so-called "Dynamic Query" SELECT * FROM table1 where a = 1 and ((@id is NULL) or ([email protected]) or (@id = ")) @id Is the parameter passed in, if the value of the ID is null, then an entire block after and is false, can be ignored, and if not NULL, it is actually equal to where a=1 and Id=[email protected] if you want to enable the ID as a query condition, A non-null value is passed in, otherwise the ID is not enabled as a query condition, which is the legendary dynamic query