【发布时间】:2021-08-11 00:10:33
【问题描述】:
所以我在创建 sql 查询时遇到了以下问题。
一个链接服务器,所以我使用的是开放式查询。 (编辑更新:SQL Server) 两张表如下图:
我需要将值插入到第三张表中,插入到第三张表中的值来自上面我通过 KEY ID 连接的两个表。
但是,在连接中,我想选择表 A 中的所有列,并且只选择表 B 中的值代码(表 B 中每个键 ID 有多个值代码),因此需要一个 if 或 case取决于以下几点:
如果/案例 表 B 有 Code = PRODUCT,选择 VALUE CODE A,
如果没有 Code=PRODUCT,则从 code = FOO 中选择 VALUE CODE,如果是 KEY ID 2,则为 VALUE CODE D。
如果给定的 Key ID 没有 Code = PRODUCT 或 Code = FOO,则选择对应于 Code = BAR 的 VALUE CODE,在这种情况下 Key ID 3 为 VALUE CODE F。
更新: 有时 Foo 可以在表 B 中的 Product 之前出现,如果没有对应关系,说没有 product、foo 或 bar 我希望在列行中返回空白。
如何以正确的方式编写这个使用 if/case 进行连接的 sql 查询?
【问题讨论】:
-
您使用的是什么 SQL 平台?
-
编辑您的问题并显示您想要的结果。
标签: sql if-statement join case openquery