SQLで、フィルタリングされたデータセットをクエリするための最良の方法は何ですか?
私は2つの解決策を想像しましたが、どちらが長所と短所であるかを知りたいと思います。
解決策1
パラメータ内のフィルタを使用して、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
別の方法?