【发布时间】:2012-04-01 09:44:14
【问题描述】:
以下存储过程有效,但我想知道——在 SQL Server 中处理此类操作是否有最佳实践/模式?本质上,我传递了两个不同的参数。根据为“条件”参数传入的内容,我在 where 子句中运行带有一些特定条件的查询——谢谢。
ALTER PROCEDURE [dbo].[Select_Project_Info_By_Value]
(
@value VarChar(50),
@criteria VarChar(50)
)
AS
BEGIN
SET NOCOUNT ON;
if @criteria= 'All'
SELECT some some tables...
FROM dbo.Table1
WHERE (NOT (Status = 'ABC'))
else if @criteria = 'X'
SELECT some some tables...
FROM dbo.Table1
WHERE (Matno LIKE '%' + @value + '%') AND (NOT (Status = 'ABC'))
else if @criteria = 'Y'
SELECT some some tables...
FROM dbo.Table1
WHERE (ID LIKE '%' + @value + '%') AND (NOT (Status = 'ABC'))
else if @criteria = 'Z'
SELECT some some tables...
FROM dbo.Table1
WHERE (ProDescr LIKE '%' + @value + '%')
else if @criteria = 'A'
SELECT some some tables...
FROM dbo.Table1
WHERE (CustCode LIKE '%' + @value + '%') AND (NOT (Status = 'ABC'))
else if @criteria = 'B'
SELECT some some tables...
FROM dbo.Table1
WHERE (ApplName LIKE '%' + @value + '%') AND (NOT (Status = 'ABC'))
END
【问题讨论】:
标签: sql-server sql-server-2005