小编Ben*_* CA的帖子

SQL 相当于无法 JOIN 时从 WHERE EXISTS 返回值

试图弄清楚如何在有效的 SQL (MS SQL Server) 中编写以下伪代码:

SELECT 
  T1.Item,
  T1.Set,
  Has.SN
FROM T1
 WHERE EXISTS
(SELECT SN FROM T2 WHERE Condition = 'X') AS Has
Run Code Online (Sandbox Code Playgroud)

本质上,如果 T2 上存在 SN,则返回 SN 以及来自 T1 的不相关值。如果SN不存在,则不应返回任何数据(或者可以全部返回NULL)

但 Item 和 Set 必须与 T1 上的同一行相关,并且我还需要返回 SN。(我不确定如果使用单独的 CASE 语句是否能保证这一点。)

没有任何与 JOIN T1 和 T2 相关的内容。

(请注意,这只是作为查询的一个子组件,我需要它以一种可以在其他联接中使用的方式返回这 3 列。)

我认为有一个非常简单的解决方案,但我却一片空白。

我做了一些搜索,但没有找到任何与此类似的示例。

更新

所以样本数据如下:

T1

+----+---------+-----+
| ID | ItemID  | Set |
+----+---------+-----+
| 1  | 2424424 | 4   |
+----+---------+-----+
| 2  | 2454677 | 7   | …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

4
推荐指数
1
解决办法
748
查看次数

标签 统计

sql-server ×1

sql-server-2008 ×1