“1,2整体”不是什么类型,仅仅是个一个表达式列表。以下是SQL帮助所述:
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 对返回值取反。
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 对返回值取反。
returns table
as
return(select * from 表 where charindex(','+cast(字段名 as varchar)+',',','+@value+',')>0)
go--调用函数查询
select * from dbo.f_select('1,2')