【发布时间】:2013-10-29 14:59:01
【问题描述】:
抱歉,我不知道如何为这个问题命名。我想在 sql 中选择一些记录,其中特定列是一组字符串。
示例。我有一个表学生,并有列 ID 和名称。 ID 有记录 1,2,3,4,5,6 。名称有 A、B、C、D、E、F。
我想返回 C,D,E WHERE ID=[3,4,5]。
我试过了
SELECT FROM student WHERE ID=2,3,4
它给出错误 ID=2,3,4 ='2,3,4' 并将 ID 作为单个列读取。我很迷惑。
在我的例子中,ID 集在存储过程变量中返回。这就像@ID
SELECT * FROM STUDENT WHERE ID=@ID
上面的@ID 是一个字符串类型的变量,它保存着集合 {1,2,3}。请提供任何帮助。
【问题讨论】:
-
WHERE ID=[3,4,5]这不是有效的语法。你想要WHERE ID IN (3, 4, 5),不幸的是你不能在那里添加一个包含合法值集的参数。您最好的选择是动态构造 SQL,或者将值插入临时表并执行连接(或在 IN 子句中进行子选择)。 -
试试
SELECT FROM student WHERE ID IN (2,3,4)
标签: c# sql-server sql-server-2008 select