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

从结果集中创建一个长字符串

裴心水
2023-03-14
问题内容

我在存储过程中的MS-
SQL中有一个结果集,可以说它有一个VARCHAR列,但有很多行。我想创建一个包含所有这些值的逗号分隔的字符串,是否有一种简单的方法来执行此操作,还是我必须逐步检查每个结果并手动构建字符串?

最好是我想在存储过程本身中执行此操作。


问题答案:

这是一种方法(使用AdventureWorks2008 DB):

DECLARE @name varchar(255)
SET @name = NULL

select @Name = COALESCE(@Name + ',','') + LastName from Person.Person
Select @name

这是另一个(从SQL 2005开始):

SELECT 
    LastName + ','
FROM 
    Person.Person
FOR XML PATH('')

在这两种情况下,您都需要删除逗号“,”(可以使用STUFF()函数)



 类似资料:
  • 问题内容: 我想一个拆分成的基础上的内容。结果将包含原始流数据的一部分。 我的实际应用程序更加复杂(将时间间隔列表中的日志行分组),但是我的问题是如何处理流,因此在这里我问一个简化的示例。 我希望能够基于重复的相同数字将a拆分为一个,而仅将流保留为奇数。 例如,以下流包含: 需要产生包含以下内容的流: 通过使用过滤器开始(或结束),可以省去偶数: 这是不希望的,因为这意味着对每个输入值进行两次评估

  • 问题内容: 我有以下查询: where 是一个允许其参数为VARCHAR2或CLOB的函数,并且是一些字符串,可能真的很长。 我正在尝试使用以下代码来绑定变量: 但是如果> 4000,则会出现以下错误: 出于明显的原因:VARCHAR2的大小限制为4000个字符。 然后,我尝试使用以下代码: 这给出了一个不同的错误: 我尝试的最后一个想法是使用方法创建CLOB,但由于以下异常而失败: 我究竟做错了

  • 我正在研究将字符串从一个字符集转换为另一个字符集,阅读了很多关于它的示例,最终找到了下面的代码,这对我来说很好,作为一个字符集编码的新手,我想知道,这是否是正确的方法。 要将字符串从ASCII转换为EBCDIC,我必须执行以下操作: 要将EBCDIC转换为ASCII,我必须:

  • 我想根据的内容将单个拆分为的。生成的应该包含原始流数据的一部分。 我的实际应用程序更复杂(它是对时间间隔列表中的日志行进行分组),但我的问题是如何处理流,因此这里我询问一个简化的示例。 我希望能够拆分

  • 问题内容: java中有没有一种方法可以用指定数量的指定字符创建字符串?就我而言,我需要创建一个包含10个空格的字符串。我当前的代码是: 有没有更好的方法来完成同一件事。特别是我想快速(在执行方面)。 问题答案: for循环将由编译器优化。在像您这样的情况下,您无需自己担心优化。信任编译器。 顺便说一句,如果有一种方法可以创建一个包含n个空格字符的字符串,那么它的编码方式就和您刚才一样。

  • 问题内容: 我如何提取字符串[]或arraylist中的所有元素,并以适当的格式(所有空格之间使用单个空格)组合所有单词并存储在数组中。 输出:Java很酷。 问题答案: 使用。 或使用Apache Commons Lang 。 或使用Java8的。