我想在sql过程中使用动态过滤器 ,像这样
从Table Where @Filter
中选择*我可以这样写,还是使用不同的方法 我必须使用此语法,因为我希望在应用程序和使用过程中删除选择。
答案 0 :(得分:0)
CREATE PROCEDURE spProcedurName
@Filter datatype
AS
BEGIN
SELECT *
FROM Table
WHERE columnName= @Filter
END
你可以这样做。
答案 1 :(得分:0)
@Query ='
从表格中选择* + @Filter
exec @Query
答案 2 :(得分:0)
CREATE PROCEDURE SP_DynamicFilter
(
-- Optional Filters for Dynamic Search
@COLUMN1 INT = NULL,
@COLUMN2 NVARCHAR(50) = NULL,
@COLUMN3 NVARCHAR(50) = NULL,
@COLUMN4 NVARCHAR(50) = NULL
)
AS
BEGIN
SELECT *
FROM TableName
WHERE
(@COLUMN1 IS NULL OR Column1 = @COLUMN1)
AND (@COLUMN2 IS NULL OR Column2 LIKE '%' + @COLUMN2 + '%')
AND (@COLUMN3 IS NULL OR Column3 LIKE '%' + @COLUMN3 + '%')
AND (@COLUMN4 IS NULL OR Column4 LIKE '%' + @COLUMN4 + '%')
END