IN
确定给定的值是否与子查询或列表中的值相匹配。语法
test_expression [ NOT ] IN
(
subquery
| expression [ ,...n ]
) 参数
test_expression是任何有效的 Microsoft® SQL Server™ 表达式。subquery是包含某列结果集的子查询。该列必须与 test_expression 有相同的数据类型。expression [,...n]一个表达式列表,用来测试是否匹配。所有的表达式必须和 test_expression 具有相同的类型。结果类型
布尔型结果值
如果 test_expression 与 subquery 返回的任何值相等,或与逗号分隔的列表中的任何 expression 相等,那么结果值就为 TRUE。否则,结果值为 FALSE。使用 NOT IN 对返回值取反。
确定给定的值是否与子查询或列表中的值相匹配。语法
test_expression [ NOT ] IN
(
subquery
| expression [ ,...n ]
) 参数
test_expression是任何有效的 Microsoft® SQL Server™ 表达式。subquery是包含某列结果集的子查询。该列必须与 test_expression 有相同的数据类型。expression [,...n]一个表达式列表,用来测试是否匹配。所有的表达式必须和 test_expression 具有相同的类型。结果类型
布尔型结果值
如果 test_expression 与 subquery 返回的任何值相等,或与逗号分隔的列表中的任何 expression 相等,那么结果值就为 TRUE。否则,结果值为 FALSE。使用 NOT IN 对返回值取反。
declare @id varchar(3)
declare @range varchar(20)
set @idrange='(''1'',''0'')'
declare cur_id cursor for
Select ID From tablewhere fundid in ('1','0'')
不行啊,@idrange 是我要从外面传进来的一个参数来的,是一个查询的条件来着
谢谢!
2、如果要按照你的写法,需要用动态sql语句实现,其实这里面不需要更简单,可以换种方法,就是使用函数charindex来判断,如下:declare @id varchar(3)
declare @range varchar(20)
set @idrange='1,2,3,4'
declare cur_id cursor for
Select ID From tablewhere where charindex(',' + cast(fundid as varchar) + ',',',' + @fundrange + ',') > 0
-- 以上的写法,fundid需要是数字类型
http://expert.csdn.net/Expert/topic/2614/2614441.xml?temp=.8891107