当前位置: 首页 > 面试题库 >

从逗号连接的列表创建SQL表

濮阳弘扬
2023-03-14
问题内容

我正在运行SQL Server,并且有一个存储过程。我想用WHERE IN子句做一条选择语句。我不知道列表会持续多久,所以我尝试了以下方法

SELECT * FROM table1 WHERE id IN (@idList)

在此解决方案中,@ idList是varChar(max)。但这是行不通的。我听说过要传递表值,但是我对如何做到这一点感到困惑。任何帮助都会很棒


问题答案:

我建议使用一个函数来拆分传入列表(使用Martin在其评论中放置的链接)。

将split函数的结果存储在临时表或表变量中,并将其联接到查询中,而不是WHERE子句中

select * into #ids from dbo.Split(',', @idList)

select t.*
from table1 t
 join #ids i
    on t.id = i.s


 类似资料:
  • 问题内容: 当我搜索“ new1”时,如何获取所有用户名。例如:我应该以tblC中的userid 1,2为A和B来获取具有new1的row1的1,2,应该使用什么查询来获得上述结果?非常感谢您的帮助。 http://sqlfiddle.com/#!2/1ab8e/2 到目前为止查询: 问题答案: 您应该真正看一下 数据库的规范化 ,首先通过添加一个联结表并保持来自tablec的关系来规范化您的结构

  • 问题内容: 我有3个表,分别为: 应用程序(ID,名称) 资源(ID,名称) ApplicationsResources(id,app_id,resource_id) 我想在GUI上显示所有资源名称的表。我想在每一行的一个单元格中列出该资源的所有应用程序(以逗号分隔)。 所以问题是,在SQL中执行此操作的最佳方法是什么,因为我需要获取所有资源,并且还需要获取每种资源的所有应用程序? 我是否先从资源

  • 问题内容: 我有看起来像这样的数据: 对于每个customer_id,我需要用逗号分隔的列表,以指示该客户运营的月份: 等等。如何使用SQL Server 2005 SQL(而不是T-SQL)轻松生成此逗号分隔的列表? 我在Stack Overflow和其他地方在这里看到的大多数解决方案似乎都是基于联接多个行值而不是列值来创建逗号分隔的列表: T-SQL FOR XML路径(’‘) 关联的子查询与

  • 问题内容: 我已经在Google的帮助下编写了此查询,以便从表格中创建定界列表,但是我对此查询一无所知。 谁能解释我发生了什么事 给我结果 问题答案: 解释它的最简单方法是查看实际XML的工作方式。想象一个简单的表: 你可以用 这将创建XML,如下所示 从中删除’Employee’会删除外部xml标记,因此此查询: 将创建 然后,您所执行的操作并不理想,列名“ data()”会导致sql错误,因为

  • 问题内容: 我知道如何使用foreach遍历数组的项并附加逗号,但是必须取下最后的逗号总是很痛苦的。有没有简便的PHP方式? 最终我想要 问题答案: 您想为此使用爆破。 即: 有一种附加逗号而不尾随逗号的方法。如果您必须同时进行其他操作,则需要这样做。例如,也许您想引用每个水果,然后将它们全部用逗号分隔: 另外,如果您只是按照“正常”的方式在每个项目后面添加逗号(就像您以前做过的事情一样),并且您

  • 问题内容: 我的表结构如下所示, “邮件” 列可以包含多个由逗号连接的电子邮件 数据(整数) 邮件(varchar(200)) [数据] [邮件] 1引用m1 @ gmail.com,m2 @ hotmail.com 2引用m2 @ hotmail.com,m3 @ test.com &我需要生成如下的报告,对每封电子邮件的每一行进行计数 [邮件] 听听听听听听听听听听听听听听听听听 [COUNT