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

TSQL案例where语句,如果参数为null

翟沈义
2023-03-14
问题内容

我有一个SP,这给了我很多困难。

sp获得两个参数@madeByUserId和@reportedByUserId。我想要类似的东西:

 select * from table
  where MadeByUserId = @madeByUserId (if(@reportedByUserID != null) and ReportedByUserID = @reportedByUserID)

基本上,我想在where子句中提出一个案例,以包含另一个基于@reportedByUserId的null / not null状态的过滤条件

那可能吗?

非常感谢Radu


问题答案:

尝试:

 select * from table
 where MadeByUserId = @madeByUserId 
 AND (@reportedByUserID IS null OR ReportedByUserID = @reportedByUserID)


 类似资料:
  • 问题内容: 该查询允许对结果进行过滤,而不是对我将如何更新的结果进行过滤,因此它仅严格显示大学= 2时的结果 我将全文搜索与LIKE结合使用的原因是,由于全文搜索具有的最小字母数,并且由于我处于共享主机计划中,因此无法修改设置。结果,我将全文和LIKE结合在一起以适应 问题答案: 修正括号 具有比更高的优先级,因此只能与结合使用,而不能与测试结合使用。

  • 问题内容: 我有这个查询: 但是我想做这样的事情: 如何检查电子邮件是否存在?我要使用电子邮件,如果此字段为空,我要使用email2。我该如何完成? 问题答案: 用于选择字段,然后在其后放置该子句:

  • 问题内容: 我有两个TSQL EXEC语句 如何使两个EXEC同步?; 现在,第二个EXEC不会等待第一个EXECUTE完成。我尝试发出WaitFor Delay,它等待,但是第二个EXEC语句永不恢复。 谢谢。 更新,这里是更多信息: 首先执行将创建一个全局临时表,并从一个复杂的SELECT查询中填充它。 第二个EXEC是CLR存储过程,它基于最近创建并填充的Global Temp表中的变量来生

  • 有人能建议我如何替换下面的代码吗? 如何重写代码以避免重复块{code>case 3:{code block A;break;} ? 如何将案例1和案例3的代码组合起来?

  • 问题内容: 所以我们有mysql MIN()函数来获取表中的最小值…但是如果我想基于条件获取MIN()怎么办 所以像MIN(年龄)身高<170 其中的目标是获得身高<170岁的人的最低年龄…所以说sam是身高<170岁的人中年龄最小的人,而pam比sam年轻但身高> 170岁的人,则查询应该返回sam而不是pam … 我将如何构成这样的查询? 问题答案: 您说您要“仅身高<170岁的人的最低年龄”

  • 问题内容: 我有一个存储过程,可根据4个参数从表中获取信息。 我想基于参数获取值,但是如果参数为NULL,则不会检查该参数。因此,如果所有4个参数都为null,则将显示整个表。 这是我的SP(如您所见,这仅适用于1个参数atm): 有什么方法可以做到, 而 不必为每种可能的组合都加一个(15个IF)? 问题答案: 怎么样 在这种情况下,您可能还使用了 但总的来说,您可以尝试类似