存储过程动态组建查询where语句

存储过程动态组建查询where语句,主要实现根据@company是否为空来动态添加查询条件
set ANSI_NULLS ON
set QUOTED_IDENTIFIER off
go
ALTER PROCEDURE [dbo].[bus_modify_incheck1]
    @startIndex INT,
    @pageSize INT,
    @modify_status nvarchar(20),
    @company nvarchar(20),
  AS


declare @sql nvarchar(2000)
set @sql="with orderList as(SELECT ROW_NUMBER() OVER (ORDER BY 维修编号 DESC)AS Rownum,维修编号,车辆编号,username_jcjyy,保修分厂,进厂时间,
修理状态,报修人姓名 from web_车辆维修 where 修理状态='"+@modify_status+"' and  isnull("+@company+",1=1))";

begin
exec  @sql
--SELECT Rownum,*
--FROM orderList
--WHERE Rownum between @startIndex and @startIndex+@pageSize-1


end

 在存储过程执行时,提示错误
在应使用条件的上下文(在 ')' 附近)中指定了非布尔类型的表达式。
谁帮我看看,谢谢

 

原文地址:https://www.cnblogs.com/wasp520/p/1009192.html