SQL Server 条件 JOIN 语句

2024-02-13

是否可以执行以下操作:

IF [a] = 1234 THEN JOIN ON TableA 
ELSE JOIN ON TableB

如果是这样,正确的语法是什么?


我认为您所要求的通过加入Initial两个表Option_A and Option_B using LEFT JOIN,这会产生这样的结果:

Initial LEFT JOIN Option_A LEFT JOIN NULL
OR
Initial LEFT JOIN NULL LEFT JOIN Option_B

示例代码:

SELECT i.*, COALESCE(a.id, b.id) as Option_Id, COALESCE(a.name, b.name) as Option_Name
FROM Initial_Table i
LEFT JOIN Option_A_Table a ON a.initial_id = i.id AND i.special_value = 1234
LEFT JOIN Option_B_Table b ON b.initial_id = i.id AND i.special_value <> 1234

完成此操作后,您将“忽略”NULL 集。这里的额外技巧是在 SELECT 行中,您需要决定如何处理 NULL 字段。如果 Option_A 和 Option_B 表相似,那么您可以使用COALESCE函数返回第一个 NON NULL 值(按照示例)。

另一种选择是,您只需列出 Option_A 字段和 Option_B 字段,然后让任何使用ResultSet处理确定要使用哪些字段。

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

SQL Server 条件 JOIN 语句 的相关文章

  • R Data.Table 创建带有条件的变量

    我需要在下面的数据集中创建一个新变量 A X a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8 i 9 j 10 The newvar如果X等于 2 5 7 或 9 否则 newvar应该是 0 Code dt1 lt dat
  • 显式与隐式 SQL 连接

    显式内连接与隐式内连接之间有效率差异吗 例如 SELECT FROM table a INNER JOIN table b ON a id b id vs SELECT a b FROM table a table b WHERE a id
  • 有很多数据库视图可以吗?

    我很少 每月 每季度 使用 Microsoft SQL Server 2005 数据库视图生成数百份 Crystal Reports 报告 在我不读取这些视图的所有时间里 这些视图是否会浪费 CPU 周期和 RAM 因为我很少从视图中读取数
  • 如何将字符串解析为 UNIQUEIDENTIFIER?

    我正在编写一个实体框架 LINQ 查询 其中我想将字符串解析为 UNIQUEIDENTIFIER 又名 GUID 作为WHERE clause public IEnumerable
  • 避免数据集中出现重复名称

    我正在从表中获取数据并绑定到标签并在 gridview 中下拉 但我想从表中过滤重复的名称并将相应的日期分配给 DDL 如何做到这一点 或者还有其他选择吗 private DataSet get string sql select Id N
  • 选定的非聚合值必须是关联组的一部分

    我在 Teradata 中有两个表 Table A 和 Table B 它们之间是 LEFT JOIN 之后我将创建 SELECT 语句 其中包含两个表中的属性 SELECT attribute 1 attribute 2 attribut
  • asp.net网格分页的SQL查询

    我在用iBatis and SQLServer 使用偏移量和限制进行分页查询的最佳方法是什么 也许我添加该列ROW NUMBER OVER ORDER BY Id AS RowNum 但这只会阻止简单查询的数据访问 在某些情况下 我使用选择
  • 字符串文字上的 SQL Server T-SQL N 前缀[重复]

    这个问题在这里已经有答案了 这可能是一个菜鸟问题 但我发现了一些 T SQL 查询示例来验证数据库大小SELECT and WHERE clause here http technet microsoft com en us library
  • 如何查询集成服务目录

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

    我正在尝试在 SQL Server 2017 中试验外部文件 但在第一步中遇到了困难 数据是管道分隔的 我试图遵循文档中的语法 这需要一个FILE FORMAT 以下是 Microsoft 的语法 CREATE EXTERNAL TABLE
  • 在 Sql STUFF 命令中将最后一项的逗号分隔符替换为“and”

    如果我查询的输出是英国 美国 印度 是否可以像英国 美国那样显示查询结果and India 这是我的查询 Select stuff Select Distinct Country as text from tbl Country where
  • Sql Server 的夏令时

    我们正在使用一个以 C Unix 格式存储日期的旧应用程序 C 时间基本上是自 1970 年 1 月 1 日以来的秒数 日期以整数形式存储在 SQL Server 数据库中 我正在为使用这些日期的报告编写视图 到目前为止 我正在使用以下命令
  • Fluent NHibernate - 将属性映射到连接表上的列

    我有几张桌子 例如 产品 Id 名称 制造商 ID 制造商 ID 名称 我希望能够在我的产品对象上包含ManufacturerName 而不是当我只需要名称时必须加载整个制造商行 我的产品地图看起来像 Table Product Id x
  • RANK() OVER PARTITION 并重置 RANK

    如何获得在分区更改时重新启动的 RANK 我有这张表 ID Date Value 1 2015 01 01 1 2 2015 01 02 1
  • ORA-00933 与内部联接和“as”混淆

    我有一个使用以下命令从两个表中获取数据的查询inner join 但我收到错误SQL command not properly ended as 下面有一个星号 select P carrier id O order id O aircra
  • 如何使用 SQL 通过表示多级订单的 varchar 字段正确排序?

    我不太喜欢数据库 我发现在查询上出现以下问题SQL服务器数据库旧的遗留应用程序的 我声明不幸的是我无法更改数据库结构 字段类型 这非常难看 我有以下情况 SELECT Sottocategoria IdSottocategoria IdCa
  • 使用条件 SQL 统计每月汇总记录

    我有一张桌子 我们就叫他们桌子吧SUMMARYDATA NIP NAME DEPARTMENT STATUSIN STATUSOUT TOTALLOSTTIME A1 ARIA BB 2020 01 21 08 06 23 2020 01
  • 使用 MS Access 链接表连接到 SQL Server 后端时是否可能发生 SQL 注入

    我一直在对此进行一些研究 但到目前为止还是一片空白 情况是这样的 我正在开发一个链接到 SQL Server 后端的 MS Access 前端 我在某种程度上使用 Access 中的链接表 表单访问 SQL DB 这样 当用户更新表单中的值
  • 在对象数组内的特定 JSON 值上创建索引

    假设我的表中有一个 varchar 列 其结构如下 Response DataArray Type Address Value 123 Fake St Type Name Value John Doe 我想在 DataArray 数组元素的
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e

随机推荐

  • Visual Studio 2013 IntelliSense 停止为 ASP.NET MVC5 控制器工作

    我在 Visual Studio 2013 ASP NET MVC 5 项目中面临一个奇怪的问题 突然间 MVC 5 项目的 Controller 类中的 IntelliSense 根本不起作用 我的解决方案中有其他类库项目 并且 Inte
  • 命名与通配符导入为何/如何影响参数?

    所以 我正在修改一些基本的 python tkinter 程序 并将我正在阅读的书中的 python 2 x 代码翻译为 3 x 以确保我理解所有内容 我还尝试使用 正确的 命名导入而不是通配符导入来编写代码 即from tkinter i
  • defiant.js 节点中带有空格的 XPath 表达式

    我在用反抗者 js http www defiantjs com 用于搜索 json 根据他们的文档 我需要提供 xpath 来从 json 中搜索特定元素 当节点中没有空格时我成功了 但我的 json 现在包含空格 这是我的 csv 我想
  • F# Seq 的一个实现问题

    我最近正在深入研究 F 源代码 在 Seq fs 中 Binding We use a type defintion to apply a local dynamic optimization We automatically right
  • 如何使用rails format.json [关闭]

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

    我在 Mac OS X 10 5 6 上运行 Eclipse SDK 3 4 0 每次我尝试通过 软件更新 安装新内容时 都会显示消息 您选择的软件项目可能对当前安装无效 所以我要卸载它并重新安装 Eclipse 我应该删除 Eclipse
  • 相对于 .js 文件的 Angular 指令 templateUrl

    我正在构建一个角度指令 它将在几个不同的位置使用 我不能总是保证使用该指令的应用程序的文件结构 但我可以强制用户将directive js and directive html 不是真实的文件名 在同一文件夹中 当页面评估时directiv
  • 第一个参数不是开放的 RODBC 通道

    我通过 DNS 连接到 Oracle 数据库 在 tnsnames ora 上设置名称为 database 的连接 我能够成功运行以下代码 con lt DBI dbConnect odbc odbc database UID user P
  • Hibernate 搜索问题 - 无法初始化代理 - 没有会话

    使用休眠添加新记录时出现以下异常 我还使用 Hibernate 搜索来创建索引 这是我的例外 Jun 11 2009 1 01 23 PM org hibernate LazyInitializationException
  • C# 中的垃圾收集未执行。为什么?

    我尝试了一个简单的实验来验证垃圾收集器的功能 参考文献3 9 自动内存管理 https msdn microsoft com en us library aa691138 28v vs 71 29 aspx MSDN 关于自动内存管理 NE
  • 从 UIWebView 中清除凭据

    我在这里所做的是获取具有身份验证的 URL 因此 我使用该功能 void connection NSURLConnection connection didReceiveAuthenticationChallenge NSURLAuthen
  • 使用 Flutter 在谷歌地图中添加标记

    我已经成功在我的 flutter 应用程序中创建了一个谷歌地图 并且我能够显示我的位置以及使用纬度和经度的标记 有谁知道如何为谷歌地图中已存在的企业创建标记 我应该向标记传递什么来识别已经在谷歌地图中的企业 谢谢 您可以使用地点搜索 htt
  • 如何使用 ssh 在 Heroku 上保持日志尾部处于活动状态?

    Using heroku logs tail这几分钟效果很好 然后它停止显示日志 看来 ssh 连接超时并终止 没有错误或消息 在 Ubuntu 11 04 中使用有线连接 我将以下内容添加到 ssh config 中 ServerAliv
  • 绘制逻辑回归的决策边界

    我正在尝试实施逻辑回归 我已将特征映射到 x1 2 x2 0 x1 1 x2 1 形式的多项式 现在我想绘制相同的决策边界 经历了这一切之后answer https stackoverflow com a 22356551 1783688我
  • SQL 查询游程长度或连续相同值编码

    我的目标是获取一组按顺序排序的数据id并返回一个结果集 该结果集指示连续行数val列是相同的 例如 鉴于此数据 id val 1 33 2 33 3 44 4 28 5 44 6 44 我想看到这个结果 id val run length
  • 多页 tiff 的简单 WPF 页面选择

    我正在制作一个基本的 Tiff 查看器 需要能够选择要查看的页面 在 Winforms 中 我可以使用 selectActiveFrame 所以我想知道是否有一个与此等效的 WPF 谢谢 编辑 在winforms中 我在selectActi
  • 如何使用boto读取S3上的二进制文件?

    我在 S3 文件夹 私人部分 中有一系列 Python 脚本 Excel 文件 如果它们是公开的 我可以通过 HTTP URL 读取访问它们 想知道如何以二进制方式访问它们以执行它们 FileURL URL of the File host
  • Android Phonegap:$.ajax 不会触发未经授权的回调(401)

    我正在使用 PhoneGap 构建 Android 应用程序 使用 jQuery 或 Zepto 我可以使用 ajax 调用来调用网站 API 然而 当网站返回 401 未经授权 响应时 ajax 调用似乎没有回调 没有调用 成功 错误 或
  • 在 Angular 的 Bower 组件中包含 html 模板

    我正在为我的角度应用程序制作一些可重用的指令 方法是将它们放入单独的 Bower 组件中 我想使用 templateUrl 作为指令 这样我就不会被迫执行本文中的三个选项之一 如何在我的 Angular 指令 Bower 包中使用单独的模板
  • SQL Server 条件 JOIN 语句

    是否可以执行以下操作 IF a 1234 THEN JOIN ON TableA ELSE JOIN ON TableB 如果是这样 正确的语法是什么 我认为您所要求的通过加入Initial两个表Option A and Option B