带有变量的SQL IN子句。 [英] SQL IN Clause with variable.
本文介绍了带有变量的SQL IN子句。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
声明 @ Candidate_category as varchar ( 255 )
set @ Candidate_category = ' ''general'',''sc'''
- 查询不起作用:查询1
从 * > candidate_details 其中 中的Candidate_category ( @ Candidate_category )
- 查询工作:查询2
从 candidate_de中选择 * tails 其中 中的Candidate_category (' general',' sc')
当我们使用像查询1中的变量传递值时,上面的查询不起作用。但是当我直接输入像查询2中所需的值时它可以工作
我的查询1如何工作。?
解决方案
这是一个你需要执行的动态查询,如图所示。
声明 @ Candidate_category as varchar ( 255 )
声明 @ query as < span class =code-keyword> varchar (2000 )
set @ Candidate_category = ' ''general'',''sc'''
set @ query = ' select * from candidate_details其中Candidate_category in(' + @ Candidate_category + ' )'
exec ( @ query 跨度>)
Declare @Candidate_category as varchar(255)
set @Candidate_category = '''general'',''sc'''
--Query Doesn't work: Query 1
select * from candidate_details where Candidate_category in (@Candidate_category)
--Query Works: Query 2
select * from candidate_details where Candidate_category in ('general','sc')
Above query doesn't work when we pass value using variable like in Query 1. But it works when i directly enter required values like in Query 2
How can my Query 1 will work.??
解决方案
This is a dynamic query you need to execute as shown.
Declare @Candidate_category as varchar(255) declare @query as varchar(2000) set @Candidate_category = '''general'',''sc''' set @query = 'select * from candidate_details where Candidate_category in ('+@Candidate_category+')' exec(@query)
这篇关于带有变量的SQL IN子句。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文