我试图编写一个存储过程,我想通过IF/Else语句测试某个值的传入参数,并最终将结果与另一个表交叉。像下面这样一个非工作的伪示例。在SQL Server中使用条件操作与INTERSECT结合使用
ALTER PROCEDURE [dbo].[Search]
@Keyword nvarchar(MAX),
@ClasificationId int
AS
BEGIN
SET NOCOUNT ON;
IF (@Keyword != null)
SELECT * FROM Table WHERE [Keyword] LIKE @Keyword
ELSE
SELECT * FROM Table
INTERSECT
IF (@Classification != null)
SELECT * FROM Table WHERE [ClassificationID] = @ClassificationId
ELSE
SELECT * FROM Table
END
ClassificationID是一个NVARCHAR(MAX)?不像大多数字段没有? –
loool你是对的。好点 – Sam