在 SQL 服务器中动态切换 Select All 和 Where 子句

Switch between Select All and Where clause dynamically in SQL Server

我想为以下条件编写一个 T-SQL 查询。

如果用户为参数提供值,运行 使用 where 子句进行查询。

SELECT * 
FROM TestDB 
WHERE CustomerId = @customer_id

如果用户没有为参数提供值,我想return所有数据

SELECT * 
FROM TestDB

我可以让它在单个查询中工作吗,例如使用 ISNULL() 或替代方法,而不使用存储过程。

WHERE 子句添加一个条件,如果用户参数为空,则允许所有记录:

SELECT *
FROM TestDB
WHERE CustomerId = @customer_id OR @customer_id IS NULL;