between and 与and or一起用的问题

明天是明天 2018-03-20 07:31:50
存储过程
where ...(t2.FNumber between @FStockID1 and @FStockID2 or t1.FNumber=@FNumber) or .t2.FNumber between @FStockID1 and @FStockID2 and t1.FNumber=@FNumber



想实现 如 仓库id 在 @FStockID1和2 之间,且 物料代码为 @FNumber
或者 只输入 仓库ID或者 物料 代码也成立

三个参数, 1和2参数 是同时输入,3参数是单独输入
...全文
907 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
明天是明天 2018-03-21
  • 打赏
  • 举报
回复
引用 1 楼 yenange 的回复:
declare @sql nvarchar(max)
--最初的连接表的部分你自己改
set @sql='select * from t1,t2 where  1=1 '  

--1.
if @FStockID1 is not null and @FStockID2 is not null
begin
    set @sql = @sql+' and t2.FNumber between @FStockID1 and @FStockID2 '
end
--2.
if @FNumber is not null
begin
    set @sql = @sql + ' and t1.FNumber=@FNumber '
end

--3. 输出SQL
print @sql
--4. 执行
--    参数类型你自己根据需要改
--    参数写全部就可以了,多了不会有异常
exec sp_executesql @sql
    ,N'@FStockID1 int
    ,@FStockID2 int
    ,@FNumber  int'
    ,@FStockID1
    ,@FStockID2
    ,@FNumber

非常感谢,可以用了,谢谢了,
吉普赛的歌 2018-03-20
  • 打赏
  • 举报
回复
declare @sql nvarchar(max)
--最初的连接表的部分你自己改
set @sql='select * from t1,t2 where  1=1 '  

--1.
if @FStockID1 is not null and @FStockID2 is not null
begin
    set @sql = @sql+' and t2.FNumber between @FStockID1 and @FStockID2 '
end
--2.
if @FNumber is not null
begin
    set @sql = @sql + ' and t1.FNumber=@FNumber '
end

--3. 输出SQL
print @sql
--4. 执行
--    参数类型你自己根据需要改
--    参数写全部就可以了,多了不会有异常
exec sp_executesql @sql
    ,N'@FStockID1 int
    ,@FStockID2 int
    ,@FNumber  int'
    ,@FStockID1
    ,@FStockID2
    ,@FNumber

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧