在 SQL 中查询过滤数据集的最佳方法是什么?
我想象了两种解决方案,我想知道一种和另一种的优点和不便之处。
解决方案 1
我使用参数中的过滤器创建了一个独特的过程
CREATE PROCEDURE [dbo].[usp_GetByFilter]
(
-- Pagination
@p_Offset int,
@p_FetchNext int,
-- Filters
@p_Param1 nvarchar(255),
@p_param2 uniqueidentifier,
@p_param3 uniqueidentifier
)
解决方案 2
我通过参数创建一个过程
CREATE PROCEDURE [dbo].[usp_GetByParam1]
(
-- Pagination
@p_Offset int,
@p_FetchNext int,
-- Filters
@p_Param1 nvarchar(255)
)
CREATE PROCEDURE [dbo].[usp_GetByParam2]
(
-- Pagination
@p_Offset int,
@p_FetchNext int,
-- Filters
@p_param2 uniqueidentifier
)
CREATE PROCEDURE [dbo].[usp_GetByParam3]
(
-- Pagination
@p_Offset int,
@p_FetchNext int,
-- Filters
@p_param3 uniqueidentifier
)
解决方案 3
另一种方式?