SQL过滤查询

2023-12-28

我有一个表,其中有许多字段。我正在尝试在 asp.net 中创建搜索过滤器,以便用户可以按一个或多个字段的组合进行搜索。所以基本上我想创建一个接受 4 个参数的单个存储过程,如果它不为空,它会将参数附加到 WHERE 子句...

TableExample 有 4 列,Col1 Col2 Col3 Col4

我希望有一种方法可以使用单个存储过程来完成此操作,而不必为每种可能的组合创建一个存储过程。

我正在尝试这样的事情,这是不正确的,但这是我迄今为止所得到的。

THANKS!

CREATE PROCEDURE [dbo].[Search]
    @Col1 int,
    @Col2 int,
    @Col3 int,
    @Col4 int
AS

SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT *

FROM
    [dbo].[TestTable]
WHERE
    1=1
    CASE        
        WHEN @Col1 IN NOT NULL
        THEN AND [Col1] = @Col1

        WHEN @Col2 IN NOT NULL
        THEN AND [Col2] = @Col2

        WHEN @Col3 IN NOT NULL
        THEN AND [Col3] = @Col3

        WHEN @Col4 IN NOT NULL
        THEN AND [Col4] = @Col4
    END

使用 OR 短路这一事实。我假设 -1 不是有效值。

CREATE PROCEDURE [dbo].[Search]
    @Col1 int = -1,
    @Col2 int = -1,
    @Col3 int = -1,
    @Col4 int = -1
AS
Begin
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT *

FROM
    [dbo].[TestTable]
WHERE
 (@Col1 = -1 OR [Col1] = @Col1)
and
(@Col2 = -1 OR [Col2] = @Col2)
and
(@Col3 = -1 OR [Col3] = @Col3)
and
(@Col4 = -1 OR [Col4] = @Col4)



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

SQL过滤查询 的相关文章

  • 如何通过 C# 检测字符串中的阿拉伯语或波斯语字符?

    我想检测Arabic or Persian字符串中的字符 例如 在字符串中搜索 15 Aspire ES1 533 C4UH 并返回true 并在字符串中搜索 Aspire ES1 533 C4UH 并返回false string patt
  • Windows 上任何单个进程可以寻址的最大内存量

    Windows 版本的内存限制 http msdn microsoft com en us library windows desktop aa366778 28v vs 85 29 aspx回答 Windows 上任何单个进程可以寻址的最
  • 知识树中的段错误

    我正在用 c 实现一个可以从文件中读取的知识树 我的 newStr 函数出现段错误 我无法用这个问题测试我的其余代码 我对 c 没有太多经验 任何帮助将不胜感激 我的 c 文件 包括 包括 include 动物 h 包括 包括 return
  • 了解左值到右值转换的示例

    我很难理解这段代码 来自 C 14 草案标准的示例 转换拉瓦尔 调用未定义的行为g false 为什么constexpr使程序有效 另外 不访问 是什么意思 y n 在两次通话中g 我们正在返回n数据成员那么为什么最后一行说它不能访问它呢
  • 在主窗体上使用 BeginInvoke 调用的网络任务未执行

    我使用 Visual Studio 2013 构建了一个具有单个表单的 C 应用程序 并且该应用程序有两个更新屏幕的例程 更新屏幕的例程需要在主线程上运行 因此我自己的线程 不与屏幕交互 在需要更新时调用主窗体上的 BeginInvoke
  • 如何在cmake中添加cuda源代码的定义

    我使用的是 Visual Studio 2013 Windows 10 CMake 3 5 1 一切都可以使用标准 C 正确编译 例如 CMakeLists txt project Test add definitions D WINDOW
  • Oracle ODP.Net 与实体框架 6 - 从表视图中选择时出现 ORA-00955

    我创建了两个应用程序 第一个使用 ODP Net 另一个没有实体 效果很好 static void Main string args OracleConnection con new OracleConnection using conne
  • 同步和异步 API

    我正在开发一个库 它提供一些耗时的服务 我需要每个 API 有两个版本 一个用于同步函数调用 另一个用于异步 图书馆用户应决定使用哪个版本 服务结果可能对于系统继续运行 同步调用 至关重要 可能需要在不同的工作线程中完成相同的操作 因为结果
  • 欢迎消息在网络聊天中不可见,但可以在模拟器中使用

    IConversationUpdateActivity update message using var scope Microsoft Bot Builder Dialogs Internals DialogModule BeginLif
  • 内存不足异常

    我有一个非常占用内存的应用程序 它在一些大数组中保存了大量的数据 我最近注意到偶尔出现 OutOfMemoryException 这些 OutOfMemoryExceptions 早在我的应用程序 ASP Net 用完可用的 800mb 内
  • 尝试从 C# 调用简单的 Python 脚本,但由于“无法获取 Python 编解码器”致命错误而失败。我怎样才能解决这个问题?

    相关的C 代码片段如下 static string CallPython string fileName Process p new Process p StartInfo new ProcessStartInfo C Python310
  • 为什么不能使用 C# 对象初始值设定项语法调用方法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Compact Framework 3.5 上的 System.Data.SQLite 问题

    我在我的紧凑框架应用程序中使用 sqlite 来记录系统中的事件 我也在使用系统 数据 SQLite http sqlite phxsoftware com 该事件具有描述其发生时间的时间戳 我将此时间戳记作为刻度存储在我的表中 除此列外
  • 使用 boost 几何检查两条线是否有交点

    是否可以使用 boost geometry 检查两条线段 每条线段由二维中的两个点给出 是否彼此相交 如果可能的话 boost geometry 是否还允许检查特殊情况 例如另一条线上只有一个点 数字上 或者两条线相等 如果你具体谈论Boo
  • 制作 C# 项目 DLL 和 EXE

    我正在开发一个项目 需要有一个可执行文件以便用户可以运行配置界面和一个可以嵌入其他项目以使用其他一些功能的 DLL 有没有办法让 Visual Studio 同时生成可执行文件和 DLL 而不是每次都手动切换 我同意 TJMonk15 的观
  • 学习 WPF 会提高我的 ASP.NET 技能吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我已经在 Windows 窗体领域工作了很多年 而且仍然如此 我完全不熟悉 ASP NET 技术 也不熟悉其他 Web 相关技术 我曾合作过 O
  • List.Except 不起作用

    我尝试减去 2 个列表 如下代码所示 assignUsers已获得 3 条记录assignedUsers有 2 行 后Except方法我仍然得到 3 行 尽管我应该得到 1 条记录 因为 2 行assignedUsers类似于assignU
  • SQL 错误:字符串或二进制数据将被截断

    我正在一个名为 Telligent 的社区平台上进行集成 我正在使用名为 BlogML 的第 3 方插件将博客文章从 XML 文件 BlogML 格式 导入到我的本地 Telligent 站点中 Telligent 平台在其 SDK 中附带
  • mysql 查询从给定的表结构创建 SEO 友好的 url

    我正在尝试使用下表创建 SEO 友好的 URL 类别表 http sqlfiddle com 2 c474a 4 页表 http sqlfiddle com 2 c474a 5 我正在尝试编写一个 mysql 查询 该查询将使用产生以下输出
  • 提高大型结构列表的二进制序列化性能

    我有一个以 3 个整数保存 3d 坐标的结构 在测试中 我将 100 万个随机点放在一起 List 然后对内存流使用二进制序列化 内存流大小约为 21 MB 这似乎非常低效 因为 1000000 点 3 坐标 4 字节应该至少为 11MB

随机推荐

  • 库不可写

    我在 Ubuntu 计算机上的 R 版本 3 0 2 2013 09 25 中安装软件包时遇到此问题 install packages randomForest Installing package into usr local lib R
  • 气流安装损坏。 `表 dag_stats 已经存在`

    我的 Airflow 安装已停止工作 UI Web 服务器未出现 我认为该问题与我运行时出现的以下错误有关 gt airflow initdb sqlalchemy exc OperationalError sqlite3 Operatio
  • Swift App首次运行检测

    快速地 我如何检测这是否是应用程序第一次运行 我想创建一个简单的游戏 如果应用程序是新的 则将高分设置为 0 如果我输入以下内容 override func viewDidLoad super viewDidLoad Do any addi
  • NTLM 身份验证失败,服务器最终响应“401”,但不是“200 OK”

    我正在使用 Node js 通过 NTLM 身份验证连接到服务器 NTLM协议步骤如下 参考 http www innovation ch personal ronald ntlm html http www innovation ch p
  • 使用 python 将纯 JSON 发送到 gRPC 服务器

    我可以使用 grpcurl 向我们启用 gRPC 启用反射的服务器之一发送请求 语法如下 grpcurl plaintext d test input Test 1 2 3 config max results 3 localhost 65
  • Java preg_match 数组

    有绳子strng 如何获得类似数组 arr 0 text1 arr 1 text2 我尝试使用这个 但结果有 而不是数组text1
  • Node.js 续集嵌入 hasMany IDs

    我正在尝试使用 ember data 的 Ember 应用程序和使用 Sequelize js 提供来自 MySQL 的数据的 Node js 后端 我的问题 如果我有一个通过 hasMany 与 Post 模型关联的 Comment 模型
  • 选择打印机并静默打印

    这个答案 https stackoverflow com a 9320649 1804599展示如何在 Google Chrome 中启用静默打印 但是 我有两个网页 必须使用两台不同的打印机进行静默打印 而无需进一步的用户交互 有没有办法
  • 蝗虫请求统计

    我正在考虑使用 Locust 进行一些性能测试 我对 Python 更熟悉 发现 Locust 比 JMeter JMX 更容易阅读 我习惯使用 JMeter 做的一件事是从多次运行中生成我自己的平均值 90 95 和 99 报告 为此 我
  • 通过 BlazeDS 从 Java 到 Flex 的自定义编组

    我的团队正在使用 BlazeDS 将概念验证 Flex 应用程序放在基于 Spring 的服务器之上 我们进行了大量的日期计算 因此我们在整个代码和域模型中广泛使用 Joda Time 我们现在正在尝试弄清楚如何继续在 DTO 中使用 Jo
  • 如何创建具有相同内部IP地址的docker容器?

    我有一个环境 需要在 Docker 容器中运行一些外部软件 该软件尝试通过特定的 IP 地址 例如 192 168 255 2 连接到我们的产品 并且该地址是固定的且无法更改 此外 主机 IP 地址也必须设置为特定 IP 比如说 192 1
  • 从javascript发送时如何保存图像服务器端

    我正在通过阅读大量教程来制作拖放上传脚本 但它们只涵盖了 javascript 部分 而我在 php 部分遇到了问题 我正在上传图像 如下所示 drop zone bind drop drop function drop e e stopP
  • 向dom添加输入字段并在IE中聚焦

    我正在尝试制作一个 div 当您单击它时 它会变成一个输入框 并将其聚焦 我正在使用原型来实现这一点 这在 Chrome 和 Firefox 中都有效 但在 IE 中无效 即使我设置了 1 秒超时 IE 也拒绝聚焦新添加的输入字段 基本上代
  • Android 中按钮单击时的“放大/缩小”图像?

    我是 Android 新手 我遵循了这个问题 并且成功缩放了图像 此代码工作正常 有人可以帮我编写如何在单击按钮时进行缩放的代码吗 我不知道如何完成此任务 这是我遵循的教程教程缩放图像 http asmncl blogspot com 20
  • 如何找到对应 X 值的 Y(隐式函数、复数)

    Given is the equation Y 2 X 3 2 X 3 X Y Assuming the plotted sketch is correct Y 2 X 3 2 X 3 X Y Hint Y 2 X 2 1 gt Y sqr
  • 快速失败和故障安全异常处理原则是否不兼容?

    我想更好地了解什么是快速失败和自动失败 乍一看 快速失败意味着我们希望在任何意外情况发生时让系统明显失败 我的意思是 例如 如果工厂无法创建对象实例 出于快速失败原则 我们真的不希望工厂返回 null 空对象或部分初始化的对象 这些对象可能
  • Rust中Clone是用于在堆上复制,而Copy是用于在堆栈上复制吗?

    正如标题所说 我可以正确地说 Clone 用于在堆上复制 而 Copy 用于在 Rust 中的堆栈上复制吗 这基本上就是这篇文章的内容here https mirror xyz 0xB38709B8198d147cc9Ff9C133838a
  • 我可以在 ag-Grid 中使用异步值设置器(TypeScript 错误)吗?

    我正在使用 ag Grid 和 TypeScript 并尝试创建一个异步价值设定者 https www ag grid com javascript grid value setters 在我的列定义中 const columnDefs C
  • Visual Studio 的未处理异常检查器插件

    我希望能够在编译时询问任何给定的方法 通过调用它可能会引发哪些可能的异常 异常列表应包括任何可能在任何嵌套方法调用中抛出的未捕获的异常 捕获的异常不应包含在列表中 因为我只对可能出现在我自己的代码中的异常感兴趣 是否存在具有该功能或类似功能
  • SQL过滤查询

    我有一个表 其中有许多字段 我正在尝试在 asp net 中创建搜索过滤器 以便用户可以按一个或多个字段的组合进行搜索 所以基本上我想创建一个接受 4 个参数的单个存储过程 如果它不为空 它会将参数附加到 WHERE 子句 TableExa