试图弄清楚如何在有效的 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)