sql where条件动态生成

shuxiang0411 2014-12-23 03:39:19
sql的where条件在数据库条件表中取(A表)

A表(条件表)
condition1 condition2
A3 001
A4 002
A3 002

sql 应该是 select * from B where (h='A3' and C='001') OR (h='A4' and C='002') OR (h='A3' and C='002')
A表条数不确定 怎么生成sql的where条件
...全文
297 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhll2046 2014-12-29
  • 打赏
  • 举报
回复
一个exists相关子查询 就OK了. http://msdn.microsoft.com/zh-cn/library/ms188336.aspx
CREATE TABLE A (condition1 varchar(99),condition2 varchar(99));
INSERT INTO A VALUES('A3','001'),('A4','002'),('A5','003');

CREATE TABLE B (h varchar(99),c varchar(99));
INSERT INTO B VALUES('A3','001'),('A4','004'),('A5','003');

SELECT * FROM B WHERE EXISTS(SELECT * FROM A WHERE A.condition1=B.h AND A.condition2=B.c)

DROP TABLE A;
DROP TABLE B;
还在加载中灬 2014-12-23
  • 打赏
  • 举报
回复
DECLARE @SQL VARCHAR(8000)
SET @SQL=''
SELECT @SQL=@SQL+'OR(h='''+condition1+''' AND C='''+condition2+''')' FROM A
IF LEN(@SQL)>0
	SET @SQL='WHERE '+STUFF(@SQL,1,2,'')
ELSE
	SET @SQL=''
SET @SQL='SELECT * FROM B '+@SQL
PRINT @SQL

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧