当前位置: 首页 > 面试题库 >

基于存储过程参数的条件where子句?

丁长卿
2023-03-14
问题内容

我有一个带参数的SQL Server 2005存储proc :@includeClosedProjects

WHERE我想根据此参数控制一个子句。

create proc sel_projects
(@incClosedRel int = 1)
as

SELECT projectId, projectName
FROM project
WHERE CompletionStatusCID NOT IN (34, 35) <-- controlled by @incClosedRel

我想获取所有项目(不包括where子句),何时@incClosedRel =1。否则,请包含where子句。


问题答案:
SELECT projectId, projectName
FROM project
WHERE CompletionStatusCID NOT IN (34, 35) 
    Or @incClosedRel = 1


 类似资料:
  • 问题内容: 我正在编写一些更新表的代码。根据用户想要执行的操作,它会更新大量的记录,也可能更新较小的记录。描绘因素是组ID。 用户可以选择是更新所有记录的表,还是仅更新具有该groupID的记录。我想对两个实例都使用相同的存储过程,也许在其中有一点逻辑来区分场景。(我不想使用90%相同的代码编写两个存储的proc。) 我不是存储过程的专家,也不知道是否可以传入可选参数,或者如何根据groupID是

  • 问题内容: 我有一个表单,用户可以指定各种参数来挖掘某些数据(状态,日期等)。 我可以产生一个查询: 等等。每一个都是可选的(我可以选择带有的所有行,或者带有的所有行,或者带有etc的所有行)。 给定大量参数(全部为可选参数),组成动态存储过程的最佳方法是什么? 我正在处理各种数据库,例如:MySQL,Oracle和SQLServer。 问题答案: 实现此目的的最简单方法之一: 等等。这完全消除了

  • 问题内容: 我有一个形式的SQL存储过程 我想向过程传递一个参数(@whereSql),该参数指定整个WHERE子句,但返回以下错误: 能做到吗? 问题答案: 简短的答案是您不能这样做-SQL Server将变量的内容视为VALUE。它不会动态构建要执行的字符串(这就是为什么这是避免SQL注入攻击的 正确 方法)的原因。 您应该尽一切努力避免动态的WHERE,主要是因为这个原因,也是为了提高效率。

  • 我正在开发一个框架,其中我是一个使用动态创建的参数调用存储过程。我正在运行时构建参数集合。 当我将参数传递给存储过程时,会出现此问题,但存储过程不接受此类参数。 例如,我的存储过程是: 调用存储过程: 这会引发以下错误: 这在 Sybase ASE 中工作正常,它只是忽略任何其他参数。这可以通过MSSQL服务器2008实现吗?任何帮助,非常感谢。谢谢

  • 我想对group by子句和where子句使用hibernate标准。 就像我有一个sql这样: 在使用标准组BY时,我如何在hibernate投影中传递截断的日期。

  • 问题内容: 我有一个执行查询的SQL Server 2005存储过程。该存储过程采用三个参数。参数如下: @StateID为int, @ CountyID为int, @ CityID为int 这些参数用于查询客户列表。如果参数值不为null,我基本上想做一个“ AND”。但是,我目前无法执行if- else。如果参数值不为null,如何添加这些子句。换一种说法: 问题答案: 加上一些OR语句: 对