使用参数作为列名的“排序依据”

2024-03-15

我们希望在使用 Visual Studio 数据集设计器创建的查询或存储过程的“Order By”子句中使用参数。

Example:

  FROM TableName
 WHERE (Forename LIKE '%' + @SearchValue + '%') OR
       (Surname LIKE '%' + @SearchValue + '%') OR
       (@SearchValue = 'ALL')
ORDER BY @OrderByColumn

显示此错误:

Variables are only allowed when ordering by an expression referencing 
a column name.

你应该能够做这样的事情:

SELECT *
FROM
    TableName
WHERE
    (Forename LIKE '%' + @SearchValue + '%') OR
    (Surname LIKE '%' + @SearchValue + '%') OR
    (@SearchValue = 'ALL')
ORDER BY 
    CASE @OrderByColumn
    WHEN 1 THEN Forename
    WHEN 2 THEN Surname
    END;
  • 将 1 分配给@OrderByColumn排序Forename.
  • 指定 2 作为排序依据Surname.
  • 等等...您可以将此方案扩展到任意数量的列。

但要小心性能。这些类型的构造可能会干扰查询优化器找到最佳执行计划的能力。例如,即使Forename被索引覆盖,查询可能仍然需要全排序而不是仅仅按顺序遍历索引。

如果是这种情况,并且您无法忍受性能影响,则可能需要为每个可能的排序顺序提供单独的查询版本,从而使客户端的事情变得相当复杂。

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

使用参数作为列名的“排序依据” 的相关文章

  • asp.net网格分页的SQL查询

    我在用iBatis and SQLServer 使用偏移量和限制进行分页查询的最佳方法是什么 也许我添加该列ROW NUMBER OVER ORDER BY Id AS RowNum 但这只会阻止简单查询的数据访问 在某些情况下 我使用选择
  • 交换 ms-sql 表

    我想以尽可能最好的方式交换到桌子 我有一个 IpToCountry 表 并根据导入的外部 CSV 文件每周创建一个新表 我发现进行切换的最快方法是执行以下操作 sp rename IpToCountry IpToCountryOld go
  • 由于继承抽象类而禁用设计器?

    我有一个项目的解决方案 那个项目中有 40 或 50 种形式 我制作了 4 个基本形式 所有其他形式都可以继承 所有 4 个基本表单都继承 System Windows Forms Form 几乎 90 的形式继承了前 2 个基本形式之一
  • 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

    几天来我一直在尝试使用 Visual Studio 2013 构建 Qt 的静态版本 我就是不明白我做错了什么 System Windows 7 64 位 Visual Studio 2013 仍安装 Visual Studio 2012
  • 如何查询集成服务目录

    问题 识别连接到 SQL Server 上特定数据库表的所有 SSIS 包 详细信息 服务器上部署了近 100 个包 大多数包的大小都很大 因此很难以高精度手动检查它们 有没有一种快速且自动化的方法来做到这一点 使用 SQL Server
  • 预期的 ProductField,出现数组问题

    我有一个 Rails 4 应用程序 它有一个如下所示的 params 块 def store params params require store permit name description user id products attr
  • 从 SQL Server 读取十进制值时出现溢出异常

    我想知道这是一个错误还是我做错了什么 我正在加载值SqlDataReader来自 SQL Server 2008 数据库 但在某些情况下 它无法将 SQL 值转换为 net 值 NET 4 0 我已将其追溯到一个测试用例 它演示了实际问题
  • 有没有办法在插入查询中执行另一个查询?

    好的 这是我的查询 我刚刚添加了 ACCOUNTID 和 accountID 部分 这显然不起作用 INSERT INTO Leads LEADID CREATEUSER CREATEDATE FIRSTNAME MODIFYDATE AC
  • 数据库级别的别名列名 [MySQL]

    别名 可能是错误的词 因为它是在将列 表名称作为查询中的其他名称引用的上下文中使用的 我感兴趣的是是否有一种方法可以在数据库中为列指定两个名称 如果我要打印这样的表格 它看起来会是这样的 mysql gt SELECT FROM User
  • Visual Studio IDE 中功能后的空间

    如何设置 Visual Studio 中的设计以在我的 javascript 函数后面放置一个空格 目前 当我按下返回键时 我得到了这个 var myfunc function 当我想要这个的时候 var myfunc function 知
  • VS 13/VS 15 - 无法导入 SQL 片段

    我想在中创建 SQL 片段VS2013 and VS2015 我不知道为什么 但我在导入时遇到错误 在两个 VS 中 C sql snippet Missing or unspecified Language attribute 我的片段
  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • SQL Server lat;lng varchar 分割过程用作 Lat 和 Lng 以提高搜索速度

    有人可以帮助我使用存储过程或函数来传递我的存储varchar表中的 lat lng 到各个字段作为浮点数作为 Lat 和 Lng 以在半径搜索中使用 lanlng in Table 33 0000 15 222222 Thanks 你只是想
  • 在 SQL Server 中通过标准差消除异常值

    我试图通过标准差消除 SQL Server 2008 中的异常值 我只想要特定列中包含该列平均值的 1 标准差范围内的值的记录 我怎样才能做到这一点 如果您假设事件呈钟形曲线分布 则只有 68 的值与平均值相差 1 个标准差以内 95 的值
  • 如何在Oracle中从表中选择列,*?

    我正在创建很多脚本 有时为了检查表是否根据我的需要进行更新 我会即时编写几个 SELECT 语句 在 SQL SERVER 中你可以这样写 SELECT Column1 FROM MY TABLE 出于可见性原因 这很有用 但是这似乎在 O
  • 如何在事务中使用链接服务器插入远程表?

    我的链接服务器设置正确 我能够执行以下查询 插入 远程服务器 表 SELECT FROM 本地服务器 表 然而当我做同样的事情时交易内 开始传输 插入 远程服务器 表 SELECT FROM 本地服务器 表 提交交易 我收到类似的错误 用于
  • 为什么版本控制系统缺乏 Visual Source Safe 的共享功能?您使用并认为哪些源代码控制值得尝试?

    我们正在寻找一种版本控制系统来改变我们当前的源安全系统 我们将它与 Visual Studio 一起使用 到目前为止 我们已经失败了 主要原因是我们看到的所有替代方案都不支持 VSS 的一项或多项功能 尤其是我们广泛使用的一项 文件共享 那
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • 批量插入不适用于 NULL 数据

    当我从 CSV 文件将批量数据插入到表中时 它不起作用 显示错误 第 2 行第 9 列的批量加载数据转换错误 类型不匹配或指定代码页的字符无效 csv 文件中的第 9 列值为空 我该如何处理这个问题 根据这些信息 我认为目标表的特定字段被定

随机推荐

  • Clojure 蛇跳过位置

    我是 Clojure 初学者 我一直在玩这里介绍的贪吃蛇游戏代码https github com stuarthalloway programming clojure blob master src examples snake clj h
  • 如何在 Windows 上的 Firefox 中阻止 Flash 内容透过 jQuery UI 对话框

    我正在使用 jQuery UI 对话框 在 Windows 上的 IE 和 FF 中 我通过对话框获取底层 Flash 内容 我通过启用 IE 解决了这个问题bgiframejQuery 对话框窗口上的选项并更改bgiframe脚本适用于任
  • 如何从 Mesos 框架 Scheduler 类读取 mesos 任务 stdout/stderr?

    我正在开发一个 Mesos 框架 它工作得很好 我唯一的问题是我无法从 Scheduler 类内部读取任务 stdout 或 stderr 我在下面提供了一个代码示例 我想读取已完成任务的标准输出和标准错误 最好在 statusUpdate
  • 10e 表示法与变量一起使用吗?

    我想知道如何在 python 2 7 9 中使用变量的 10eX 表示法 就文字而言 10eX 给出 10 X 00000 浮点数 然而 我想使用一些变量而不是文字 但它不起作用 如果可以的话 我应该进行什么语法更改或者是否有其他方法可以这
  • 代码块、单个项目、许多可执行文件

    I use 代码 块 http en wikipedia org wiki Codeblocks和 C 我的项目应该构建多个可执行文件 一组使用共享库的小工具 如何设置 CB 生成多个二进制文件 每个二进制文件都有自己的main 看看Cod
  • 如何为我的 bool 属性正确实现 INotifyPropertyChanged 并绑定到 CheckBox.IsChecked?

    这里是新手 我一直在尝试围绕数据绑定进行思考 并想尝试将视图中的复选框双向绑定到我称为 State 的单独类中的布尔值 关键是要确保它们始终保持同步 因此 我在视图中创建了一个复选框 并将其绑定到前面提到的 State 类中的布尔属性 并附
  • winsock 在哪里存储套接字的 IP 地址?

    假设我有一个简单的 winsock 服务器 它有一个侦听套接字 然后当接受连接时 它将套接字存储在套接字数组中 以允许多个连接 如何获取特定连接的 IP 地址 它是否存储在套接字句柄中 只要套接字保持连接 您就可以获得自己的套接字地址和对等
  • 在 Java 中反序列化 C# 二进制

    我有一个系统 其中使用 C 程序创建序列化文件 然后在另一个 C 程序中反序列化 我想知道是否可以在 Java 中对 C 文件进行二进制反序列化 Thanks 您可以尝试使用一些具有两个平台实现并以与平台无关的格式输出数据的序列化器 例如
  • Angular 2:如何将 JavaScript 日期对象与 NgModel 两种方式绑定一起使用

    我正在使用 Angular 2 并且有以下代码 JS 此代码启动模板的员工变量 handleEmployee employee Employee this employee employee this employee startDate
  • 在 Windows 上使用 cmake 用于 C++

    连续大约 5 天 我一直在尝试使用 C 环境设置我的计算机 以便使用 sdl glm opengl 等库进行编程 能够在 UNIX 机器上的演示中运行它对我们来说很重要 所以我使用 cmake 运行 我终于让它与 cmake gui 一起工
  • 更改 WooCommerce“xyz”类别页面上显示的产品数量

    目前 我在 xyz 类别中有 19 个项目 但我一次只能看到其中 5 个 并且显示分页 但我不想分页 有没有办法让 5 个以上的项目显示在 xyz 类别的首页上 我将以下代码添加到模板的 function php 中 add filter
  • MySQL 控制台导入大型 SQL 文件时速度缓慢

    我通过 MySQL 控制台导入 SQL 的速度相当慢 而且随着我们的 SQL 文件每天都在增加 我想知道是否有其他方法可以更快地导入 SQL 文件 更改为 Oracle 或其他系统不是一个选择 配置必须保持不变 目前 SQL 文件大小为 1
  • android 游标到 JSONArray

    如何将 Cursor 转换 为 JSONArray 我的光标为 3 列 id 姓名 出生 我已经搜索过 但找不到任何示例 游标到 JSONArray public JSONArray cur2Json Cursor cursor JSONA
  • VirtualBox WordPress 重定向到端口 80

    我在 OSX 10 9 2 上运行 我刚刚在 VirtualBox 中的 Lubuntu 上设置了 LAMP 这样我就可以通过 VirtualBox 运行开发服务器 我改变了我的 etc apache2 ports conf监听 8080
  • Android Studio3.2 APK 构建错误 -> 保留文件或目录名称“lib”

    Android Studio 版本 3 2 AI 181 5540 7 32 5014246 在 Android Studio 3 1 中 我能够成功构建 SignedAPK 但当我制作了 Android Studio 3 2 后 我根本无
  • 添加回调 url 时 Twitter API oAuth 签名失败

    我正在使用这个代码 指南另一个失败的 Twitter oAuth cURL 访问令牌请求 https stackoverflow com questions 3295466 another twitter oauth curl access
  • .NET 转到 NuGet 包的实现

    有谁知道一种方法 工具可以让我浏览实施来自 NuGet 包的方法 类型 通过具有原始PDBs or a URL哪里可以得到它们 我知道来源链接 https github com dotnet core blob master Documen
  • 使用Flask return修改网页

    我有最简单的烧瓶应用程序 app Flask name app route python methods GET POST def index return Hello World if name main app run debug Tr
  • 从 thymeleaf spring 框架中的本地目录插入图像(使用 maven)

    我使用此链接开发了一个项目 https spring io guides gs serving web content https spring io guides gs serving web content 我使用maven来开发上述项
  • 使用参数作为列名的“排序依据”

    我们希望在使用 Visual Studio 数据集设计器创建的查询或存储过程的 Order By 子句中使用参数 Example FROM TableName WHERE Forename LIKE SearchValue OR Surna