SQL Server 中具有多列的“In”子句

2023-12-29

我有一个根据提供的键从数据库检索数据的组件。 不过,我希望我的 java 应用程序能够获取单个数据库命中中所有键的所有数据,以加快速度。 当我只有一把钥匙时,我可以使用“in”子句。

在处理多个键时,我可以在 oracle 中使用以下查询

SELECT * FROM <table_name> 
where (value_type,CODE1) IN (('I','COMM'),('I','CORE'));

这类似于写作

SELECT * FROM <table_name> 
where value_type = 1 and CODE1 = 'COMM' 

and

SELECT * FROM <table_name> 
where value_type = 1 and CODE1 = 'CORE' 

together

但是,如上所述使用“in”子句的概念在“SQL server”中给出以下错误

ERROR:An expression of non-boolean type specified in a context where a condition is expected, near ','.

请告知他们是否有任何方法可以在 SQL Server 中实现相同的目的。


SQL Server 中不存在此语法。使用组合And and Or.

SELECT * 
FROM <table_name> 
WHERE 
  (value_type = 1 and CODE1 = 'COMM')
  OR (value_type = 1 and CODE1 = 'CORE') 

(在这种情况下,您可以使其更短,因为 value_type 与两种组合中的相同值进行比较。我只是想展示像 Oracle 中具有多个字段的 IN 一样工作的模式。)


当将 IN 与子查询一起使用时,您需要将其改写如下:

Oracle:

SELECT * 
FROM foo 
WHERE 
  (value_type, CODE1) IN (
    SELECT type, code 
    FROM bar
    WHERE <some conditions>)

SQL服务器:

SELECT * 
FROM foo 
WHERE 
  EXISTS (
    SELECT * 
    FROM bar 
    WHERE <some conditions>
      AND foo.type_code = bar.type 
      AND foo.CODE1 = bar.code)

根据具体情况,还有其他方法可以做到这一点,例如内部联接等。

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

SQL Server 中具有多列的“In”子句 的相关文章

随机推荐

  • 即使 cookie 是在另一个应用程序中创建的,如何检查它是否存在? (使用 JS 或 C#)

    我有几个应用程序 其中一个是管理身份验证的中央应用程序 其中一个LogOn页面导入为IFrame到其他应用程序 当 的时候userName and password是正确的 我创建了一个名为userInfo 现在 在当前的应用程序中 我想检
  • 通过长按显示选择指针并突出显示文本视图中的文本

    我有一个 TextView 我想在其上实现 LongClickListner 并选择其中的部分文本 但是选择指针不会出现 文本也不会突出显示 我知道文本被选中 因为当我使用 view getselectionstart 和 view get
  • 当不在 EOF 时 read(2) 可以返回零吗?

    根据 read 2 的手册页 当达到 EOF 时它仅返回零 但是 这似乎是不正确的 有时可能会返回零 也许是因为文件尚未准备好读取 在从磁盘读取文件之前 我应该调用 select 来查看它是否准备好吗 请注意 nBytes 为 1 445
  • 在 UIScrollView 中重写 drawRect 时出现黑色背景

    因此 我尝试覆盖 UIScrollLView 中的drawRect 但是它给了我这个黑色背景 而不是我为 UIScrollView 指定的背景颜色 为什么是这样 如果我删除 drawRect 代码 那么一切都很好 void drawRect
  • 升级到 Safari 7.0.4 后无法设置 Web 检查器断点(本地和远程)

    升级到 OSX 10 9 3 13D65 和 Safari 7 0 4 9537 76 4 后 我无法使用 Safari Web 检查器在我的 cordova 应用程序中设置断点 启用的断点显示为深灰色 禁用的断点显示为浅灰色 调试器 语句
  • 我们可以将 EF 迁移与 MySql 一起使用吗

    有没有办法使用 EntityFramework 4 3 beta 进行 MySql 数据库迁移 我们可以使用 MySql 数据库进行迁移吗 是否可以先使用EF代码进行增量数据库开发 而无需我接触数据库 理论上是的 实际上 您首先需要获取 或
  • 类型为“std::vector”的变量成员的类图

    class Foo class Demo public std vector
  • Bootstrap 3 glyphicon 点击​​时交换状态

    帮助 我希望在 bootstrap 3 中折叠时交换字形图像 我在这里找到了这个线程Bootstrap 3 折叠显示带有 V 形图标的状态 https stackoverflow com questions 18325779 bootstr
  • 从 Bool 到 Bool 有多少种不同的函数?

    由于这 至少在我看来 与编程密切相关 所以我在这里问而不是在math https math stackexchange com or cs https cs stackexchange com 但如果您认为它最适合那里或另一边 请发表您的意
  • 如何获得正则表达式的反函数?

    假设我有一个正则表达式 可以正确查找文本文件中的所有 URL http a zA Z0 9 如果我想要的不是 URL 而是相反的 除 URL 之外的所有其他文本 是否可以进行简单的修改来实现此目的 您可以简单地搜索并用空字符串替换与正则表达
  • mongoose 更新数组或添加到数组

    我已经尝试让它运行一段时间了 但我不知道我做错了什么 我有两个这样的模式 const paymentSchema new Schema year month type String required true status type Boo
  • 为什么SmartGWT没有分页网格?

    很想知道为什么SmartGWT没有分页网格 它是所有企业应用程序必须具备的功能 我找到了 Serendipity 示例 但它在最新版本中不起作用SmartGWT 我可以期待未来支持分页的网格吗 目前 SmartGWT 不支持分页网格 但有多
  • 如何在Flutter中使用TextFormField的按键事件?

    有什么办法可以捕获文本字段中的按键吗 就我而言 当用户在文本字段内按回车键时 这些值将被存储 为此 我需要像 Kotlin Android 中那样使用 Keypress event 我这周才开始尝试 flutter 因为它很有趣而且是跨平台
  • 在c中的Linux套接字编程中从侦听和接受的连接中提取IP

    在下面的代码中 我想在接受传入连接后提取已连接客户端的 IP 地址 之后我应该做什么accept 实现它吗 int sockfd newsockfd portno clilen portno 8090 clilen 0 pthread t
  • 使用 UrlHelper.Action 方法生成 url 时出现空引用异常

    由于某种原因 当某些机器人访问该网站时 会生成一个带有UrlHelper Action方法引发空异常System Web HttpServerVarsCollection Get 我已经做了一些调试 调用堆栈开始尝试从以下位置获取 HTTP
  • 无法使用 android 4.4 旋转模拟器[重复]

    这个问题在这里已经有答案了 我已经将我的sdk更新到最新版本 android 4 4 并启动了模拟器 但现在似乎无法使用CTRL F11旋转屏幕 屏幕发生变化但所有应用程序都没有改变 我不知道这是否是一个相关问题 但我可以看到 即使我创建了
  • 可编辑的组合框,绑定到不在列表中的值

    我有可编辑的组合框 其中首选项目并不总是位于下拉列表中 我希望能够在文本框中手动输入文本 该文本将传播到绑定到 SelectedValue 的字符串 现在 仅当输入的值位于 ComboBox 项中的值中时 绑定到 SelectedValue
  • NameError:名称“N_TOKENS”未定义

    我是 Python 新手 刚刚开始安装 Windows 版 PyCharm 从 Skype 下载了一些示例代码来测试他们的 SkypeKit API 但是 一旦我按下调试按钮 我就会得到 我安装了 Python 2 7 和 Django 1
  • 从 Chrome 开发工具扩展检查 WebSockets 帧

    我想创建一个 Chrome 开发者工具扩展 一个新面板 来分析我们自己网站上的 WebSockets 框架 据我所理解 http developer chrome com extensions devtools network html h
  • SQL Server 中具有多列的“In”子句

    我有一个根据提供的键从数据库检索数据的组件 不过 我希望我的 java 应用程序能够获取单个数据库命中中所有键的所有数据 以加快速度 当我只有一把钥匙时 我可以使用 in 子句 在处理多个键时 我可以在 oracle 中使用以下查询 SEL