Tsql T-SQL使用带“的变量;在;条款

Tsql T-SQL使用带“的变量;在;条款,tsql,Tsql,在我们公司,以下逻辑用于大多数SP。我无法理解变量是如何与IN子句一起使用的,如下面的查询。 有人能解释一下吗 WHERE ( ( @EMP_ID ) in ( select distinct(EMP_ID) from Table2(nolock) where SID = T1.SID and status='A' and client_id=T1.Client_Id ) ) order by EMP_ID 该变量在查询中被简单替换。如果有帮助,请将查询分解,如果为变量输入一个数字(例如

在我们公司,以下逻辑用于大多数SP。我无法理解变量是如何与IN子句一起使用的,如下面的查询。 有人能解释一下吗

WHERE ( ( @EMP_ID ) in ( select distinct(EMP_ID) 
from Table2(nolock) 
where SID = T1.SID and status='A' and client_id=T1.Client_Id ) ) 
order by EMP_ID

该变量在查询中被简单替换。如果有帮助,请将查询分解,如果为变量输入一个数字(例如,45)和一个列表来代替内部查询,请考虑:

SELECT *
FROM Table
WHERE 45 IN (42, 46, 47, 90, 45)
这将返回包含员工ID为45的行


这有意义吗?

回答你的问题:是的,有人可以解释。可能不是我

SELECT
Table2
获取
EMP\u ID
值的集合。第一个
WHERE
子句然后检查变量
@EMP_ID
的值是否在所选值集中。如果是这样,
WHERE
子句将使其父语句处理该行


SELECT
是一个相关子查询。它使用一个表(别名为)
T1
中的两个值,
SID
Client\u Id
。(所述表不包括在您的代码片段中。)对于从
T1
处理的每一行,将计算相关子查询。

是否可以粘贴语法有效的查询<代码>其中。。。从…起其中没有意义。嗨,Garrett&HABO,非常感谢您提供的信息。我明白了。