条件检查Where子句

2023-12-01

我有一个过程,其中以下条件将写入 WHERE 子句中。我怎么做。

itemid 是一个参数,可以为空。

如果 itemid 可用,则将其添加到我的 where 子句中,否则什么都不做


有些人使用这种技术

... WHERE @itemid IS NULL OR tbl.itemid = @itemid

但它保证您永远不会在 itemid 列上进行索引查找。

如果表很大,更好的方法是将查询分成 2 个单独的情况

IF(@itemid IS NULL)
  SELECT foo FROM bar
ELSE
  SELECT foo FROM bar WHERE itemid = @itemid

如果组合数量太多可以考虑动态SQL。确保您首先了解 SQL 注入。

Ref: T-SQL 中的动态搜索条件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

条件检查Where子句 的相关文章

随机推荐

  • ios 8.1 开发的最低 OS X 和 xcode 要求

    iOS 开发新手 仍在摸索 刚刚购买了苹果开发者帐户 有人可以告诉我是否可以在运行 iOS 8 1 的 iPad 设备上运行 xcode 6 和 xcode 5 编译的 ipa 我无法安装 xcode 6 1 因为我认为它需要 OS X 1
  • SQL Server 2014 的最新 SSDT 与 SqlPackage 不兼容

    我们的一台构建服务器刚刚更新到最新的 Microsoft SQL Server 数据库工具更新 版本 12 0 60629 0 现在与我们拥有的 SqlPackage exe 版本不兼容 在 C Program Files x86 中 Mi
  • android 为什么向服务器发送信息只能使用WIFI?

    我正在通过 WIFI 向服务器发送信息 一切正常 现在我也想用移动数据向服务器发送信息 我不知道为什么只能在 WIFI 下使用 移动数据会引发无法连接的异常服务器 这是移动数据失败的部分 与 WIFI 完美配合 int length val
  • 如何在 Selenium 中导航到新网页?

    我有以下代码 driver get
  • 将向量/数组从非托管 C++ 传递到 C#

    我想将大约 100 10 000 个点从非托管 C 传递到 C C 端看起来像这样 declspec dllexport void detect targets char int More arguments std vector
  • 如何基于列进行内爆(pandas 爆炸的反向)

    我有一个如下所示的数据框 df NETWORK config id APPLICABLE DAYS Case Delivery 0 Grocery 5399 SUN 10 1 1 Grocery 5399 MON 20 2 2 Grocer
  • Java 中是否有与 GetCompressedFileSize 等效的方法?

    我希望获得 Java 中稀疏文件的准确测量 即磁盘上的实际大小 而不是包含所有 0 的正常大小 在 Windows 上的 C 中 人们会使用GetCompressedFileSize 我还没有遇到过如何在 Java 中做到这一点 如果没有直
  • 无法使用 WebClient.DownloadFile 方法从启用了 TLS 1.1/1.2 协议的计算机下载文件

    我正在尝试实现一个简单的控制台应用程序 以通过 TLS 1 1 1 2 协议使用 Webclient DownloadFile 方法下载文件 这是应用程序的代码 var downloadUrl https serverURL com sam
  • 为什么这个小函数(在opengl中画一个圆)不能在c中编译?

    我正在用 c for linux 中的 opengl 做一些实验 我有以下函数 可以根据这些参数绘制一个圆 我已经包括了 include
  • 什么寄存器指向堆?

    我刚刚学完 ARM 架构 汇编 如果 SP 寄存器保存要放入数据的下一个内存位置的地址 那么什么保存堆的地址 例如 在 C 中 如果您在堆上声明一个对象 例如MyObj example new MyObj 程序集会是什么样子 从某种意义上说
  • 算法 - 网格中的警察和小偷(N*N)

    问题陈述 给定 N N 矩阵 矩阵中的每个单元格包含警察或小偷 找出被警察逮捕的小偷数量 一名警察只能逮捕一名小偷 警察可以逮捕同一排的小偷 警察可以在K范围内逮捕小偷 例如 如果K为1 则3号牢房的警察只能在2号和4号牢房逮捕小偷 Inp
  • AVCAPTURE 图像方向

    I have a view controller which allows a user to take a picture I am setting the avcapture bounds to be the bounds of a v
  • 将 ImageView 从 alpha 0 动画到 1

    我有一个 imageView 我想以不可见的方式启动 单击某个按钮后 我想要将图像动画化到视图中 然后我希望它保持 alpha 1 我该怎么做 到目前为止还没有运气 如果我在 xml 中将 alpha 设置为 0 那么我将永远看不到图像 如
  • 为什么 PocketSphinx Android 演示需要 cygwin

    我正在尝试在 android 中开发一个语音识别程序 到目前为止我发现最流行的选择似乎是 CMU sphinx pocketsphinx 用于 android 据我了解 CMU Sphinx 的源代码是用 Java 提供的 可以在计算机上运
  • 更改导航栏的高度 iOS Swift

    我正在尝试更改我的应用程序的导航栏的高度 目前高度固定为 44 我可以从 Xcode 更改宽度 但不能更改高度 我不知道如何改变这一点 对 iOS 开发非常陌生 有人可以帮忙吗 只需将其拖放到我的视图中即可 在这种情况下 最简单的方法就是施
  • 如何在 Java 中用另一个 JPanel 替换两个 JPanel 之一?

    我为欢迎屏幕设计了一个界面 其中一个 JFrame 包含两个 JPanel JPanel1 在右侧 JPanel2 在左侧 左边的按钮是切换JPanel1 中的Panel 我想按一个按钮将 JPanel1 内容替换为另一个 JPanel 但
  • Android AlarmManager 重启后

    我有一组警报需要在重新启动后保留 我尝试在启动接收器上使用 但它们不会再次启动 我不确定我是否理解启动接收器以及如何重新启动所有警报 我已经有一个通知接收器 但不知道是否可以使用同一接收器 或者是否需要一个新的接收器 有人可以向我指出任何好
  • 如何在运行时替换 Objective-C 2.0 类方法实现

    我已经使用了 class replaceMethod 函数 它适用于实例方法 但它不适用于类方法替换 有谁知道为什么以及我应该做什么来替换类方法实现 如果你有一个Class 我们称之为MyClass 那么你必须获取它的元类来操作类方法 换句
  • 如何对 React-Redux 连接的组件进行单元测试?

    我使用 Mocha Chai Karma Sinon Webpack 进行单元测试 我点击此链接为 React Redux 代码配置测试环境 如何使用 Karma Babel 和 Webpack 在 React 上实现测试 代码覆盖率 我可
  • 条件检查Where子句

    我有一个过程 其中以下条件将写入 WHERE 子句中 我怎么做 itemid 是一个参数 可以为空 如果 itemid 可用 则将其添加到我的 where 子句中 否则什么都不做 有些人使用这种技术 WHERE itemid IS NULL