【发布时间】:2018-05-23 07:58:34
【问题描述】:
我正在尝试在变量中使用 AND 运算符并在 WHERE 子句中使用它。我试图在不使用动态 SQL 的情况下做到这一点。即没有将整个查询分配给变量。
DECLARE @v_Criteria varchar(500)
DECLARE @jobtype varchar(500) = 'test Job'
IF @inparam ='Report1'
BEGIN
SET @v_Criteria= ''
END
ELSE IF @inparam='Report2'
BEGIN
SET @v_Criteria= ' AND InvoiceValue IS NOT NULL'
END
SELECT *
FROM tblJobs
WHERE JobID NOT IN (63,87,469)
AND JobType LIKE '%' + @jobtype + '%'
+ @v_Criteria
我在 @v_Criteria 之前使用了 + 运算符,然后我没有得到任何结果。如果我在 @v_Criteria 之前使用 & 运算符,我会收到错误消息。任何帮助将不胜感激
【问题讨论】:
标签: sql sql-server tsql sql-server-2012