使用IN的值范围?

  • 本文关键字:范围 IN 使用 tsql
  • 更新时间 :
  • 英文 :


我有一个属性以前它只能有一个固定值。

Where xAttribute = fixedValue

但是现在它可以是一个值范围,我知道我可以在中使用操作符

但是我如何返回/获得值的范围?

我不认为我可以使用IN表值函数?

WHERE xAttribute IN (myTableValueFunc())

或者

WHERE xAttribute IN (Select Id from myTableValueFunc())

有没有更好的方法?

如果您的表值函数返回一个表,那么您可以与它连接…

示例数据

CREATE FUNCTION myTableValueFunc()  
RETURNS TABLE  
AS  
RETURN
-- implement your function
SELECT x.Id
FROM (values (100), (200), (300)) x(Id);
create table SomeTable
(
SomeField nvarchar(1),
xAttribute int
);
insert into SomeTable (SomeField, xAttribute) values
('A', 100),
('B', 200),
('C', 300),
('D', 400),
('E', 500);
<<p>解决方案/strong>
select st.SomeField, st.xAttribute
from SomeTable st
join myTableValueFunc() mtvf
on mtvf.Id = st.xAttribute;

结果

SomeField xAttribute
--------- ----------
A         100
B         200
C         300

查看实际情况

相关内容

最新更新