我有一个属性以前它只能有一个固定值。
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
查看实际情况