【发布时间】:2011-10-20 04:30:45
【问题描述】:
我正在处理一个查询页面,其中用户选择一个代表不同类型的值,每个类型都由一个 ID 标识。 问题是使用 WHERE IN 方法从数据库中选择这些 ID。
这是我的 SQL 语句
SELECT M.REG_NO, T.TYPE_ID
FROM MAIN AS M
INNER JOIN CLASSIFICATION AS C
ON M.REG_NO = C.REG_NO
INNER JOIN TYPE AS T
ON T.TYPE_ID = C.TYPE_ID
WHERE T.TYPE_ID IN (@Types)
它适用于单个值,例如。 46,但如果值在括号中,则不是,例如。 (46)或('46'),它应该是IN的方式。
我正在使用 Visual Studio,它会自动生成访问表适配器以获取值的方法,所以我认为我必须通过 SQL 来执行此操作。
我正在传递一个字符串,例如。 Types = "46,267,2010" ,进入适配器方法,该方法将字符串传递到 SQL 语句中的 @Types 中。
任何帮助都会很棒。谢谢!
【问题讨论】:
-
不知道 SQL Server,但在 Oracle 中,您不能传入像 @Types 这样的绑定变量 - 您必须为每个 IN 值传入单独的 var 或常量。跨度>
标签: sql sql-server where-in