带有变量的SQL IN子句。 [英] SQL IN Clause with variable.

查看:50
本文介绍了带有变量的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆