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

如何在SQL Server中包括一个可选的空参数

洪琦
2023-03-14
问题内容

我想在proc的WHERE部分中创建一个具有可选参数的存储proc。我的C#代码可以为此过程传入null或有效的产品ID。这里是:

declare @ProductID int
set @ProductID = null

select
    *
from
    Products
where   
    Name like '%Hasbro%'
    if @ProductID is not null
        begin
            and ProductID = @ProductID
        end

此代码无效。如果产品ID为null,我希望它仅查找名称为“ Hasbro”的产品。如果产品ID不为null,则希望它查找其中名称为“
Hasbro”的产品,并寻找匹配的产品ID。

谢谢!

更新:

这是工作代码。谢谢大家帮助我!

declare @ProductID int
set @ProductID = null

select
    *
from
    Products
where
    Name like '%Hasbro%'
    and (( @ProductID is null ) or ( @ProductID is not null and ProductID = @ProductID ))

问题答案:

这也应该工作…

select
    *
from
    Products
where
    Name like '%Hasbro%' and
    (
      ( @ProductID is null ) or
      ( @ProductID is not null and ProductID = @ProductID ) 
    )


 类似资料:
  • 在过去的几周里,我一直在与AngularJS合作,有一件事确实让我感到困扰,那就是即使在尝试了所有的排列或规范中定义的配置之后http://docs.angularjs.org/api/ng.directive:select,我仍然得到一个空选项作为select元素的第一个子元素。 这是翡翠: 这里的控制器: 最后,这里是生成的HTML: 我需要怎么做才能摆脱它? 注意:没有这个东西也可以工作,但

  • 鉴于: 有什么方法可以使类型的参数(和)并且还保留? 更改类型会产生以下错误: @escaping属性仅适用于函数类型 删除属性,代码将编译并运行,但似乎不正确,因为闭包正在转义函数的范围。

  • 我的REST web服务中有一个函数使用GET方法,它有两个可选参数。 我试图在Swagger中定义它,但在将设置为后,我遇到了一个错误,不是一个有效的参数定义。 我发现,如果将值设置为,错误就会消失。下面是我的Swagger代码的示例。 我在body或Query中的参数中没有体验到这种情况。我认为这个问题只与PATH中的参数有关。我在swagger规范文件中也找不到任何解决方案。

  • 问题内容: 默认情况下,在构建过程中,maven会删除空目录。 您是否知道可以在pom中指定一个参数来指示maven在生成的target / test-classes文件夹中包括空目录? 问题答案: 根据票证MRESOURCES-36,应该有一个元素,但仅适用于 Maven Resources Plugin 2.3 。 对于包含旧版资源插件的Maven版本: 在此问题解决之前,这是我一直在成功使用

  • 如何在Java中检查空的可选字符串数组? 如果箱子是空的,我想回一条消息。

  • 问题内容: 我们选择带有Django 1.4测试和Selenium的元素,如下所示: (该类继承自)。 问题是有时有些元素没有文本,并且如果我们选择它,它就会失败(len为0)。如何选择没有文本的元素? 更新 :由于不起作用,我不得不断言两行以断言没有文本: 现在,我可以用一行声明相同的内容: 问题答案: 您可以使用XPath的 功能。