我有一个用户I列表和一个到SQL Server的开放连接。如何遍历此列表并选择具有First_Name和Last_Name列的匹配UserID?我假设输出可以在数据表中?
非常感谢
发布于 2010-08-11 15:16:01
本文应该会对您有所帮助:http://msdn.microsoft.com/en-us/library/aa496058%28SQL.80%29.aspx
我在过去使用它创建了一个存储过程,它接受一个逗号分隔的varchar参数。我的C#程序的源代码是一个选中的列表框,我使用foreach循环和StringBuilder构建了逗号分隔的字符串来进行连接。不过,可能还有更好的方法,这取决于你的列表中有多少项。
回到SQL部分,本文中讨论的fn_Split函数使您能够将逗号分隔的字符串转换回SQL Server可以理解的表变量...并且您可以在存储过程中查询它。
下面是一个示例:
CREATE PROCEDURE GetSelectedItems
(
@SelectedItemsID Varchar(MAX) -- comma-separated string containing the items to select
)
AS
SELECT * FROM Items
WHERE ItemID IN (SELECT Value FROM dbo.fn_Split(@SelectedItemsIDs,','))
RETURN
GO请注意,如果您愿意,也可以使用内部联接,而不是IN()。
如果您的SQL Server上没有fn_Split UDF,可以在以下位置找到它:http://odetocode.com/Articles/365.aspx
我希望这能帮到你。
发布于 2010-08-11 10:21:35
它会根据您运行的SQL类型略有不同,但是this和this应该可以帮助您入门。
发布于 2010-08-11 10:27:04
执行此操作的最便捷方法是:
SELECT u.first_name,u.last_name FROM USER_TABLE u WHERE u.userid IN (逗号分隔的用户IN列表)
否则,您可以将值插入到临时表中并连接到users表:
SELECT u.first_name,
u.last_name
FROM USER_TABLE u
JOIN #userlist ul ON ul.userid = u.useridhttps://stackoverflow.com/questions/3454837
复制相似问题