如何解决如何在SQL Server中使用动态条件?
我有一张桌子houseAttribute
----------------------------
- houseId - AttrId - Value -
----------------------------
- 1 - 1 - 5 -
- 1 - 2 - 6 -
- 2 - 1 - 3 -
- 3 - 2 - 7 -
----------------------------
我想在有条件的情况下选择所有房子。 [{attrId: 1,value: 5 },{attrId: 2,value: 7 }]
----------------------------
- houseId - AttrId - Value -
----------------------------
- 1 - 1 - 5 -
- 3 - 2 - 7 -
----------------------------
我不想写这样的条件
SELECT HouseId,Value,Attribute
FROM houseAttribute
where Attribute = 1 and Value = 5 AND
Attribute = 2 and Value = 7
.......
.......
因为我想要动态条件
解决方法
您可以使用OR
来获得正确的逻辑:
SELECT HouseId,Value,Attribute
FROM houseAttribute
WHERE (Attribute = 1 and Value = 5) OR
(Attribute = 2 and Value = 7);
我不确定您所说的“动态状态”是什么意思。但是您可以使用参数:
SELECT HouseId,Attribute
FROM houseAttribute
WHERE (Attribute = @attr_1 and Value = @val_1) OR
(Attribute = @attr_2 and Value = @val_2);
,
您可以使用执行字符串
EXECUTE sp_executesql
N'SELECT HouseId,Attribute
FROM houseAttribute
where ( Attribute = @a and Value = @b) OR( Attribute = @c and Value = @d) ',N'@a INT',N'@b INT',N'@c INT',N'@d INT',@a= 1,@b= 5,@c= 2,@d= 7;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。