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

如何列出T-SQL结果以及它们之间的逗号?

齐典
2023-03-14
问题内容

假设我们有一个简单的查询,如下所示:

SELECT x 
FROM t
WHERE t.y = z

如果结果集中只有一条记录,我想将变量@v设置为该值。如果我们有两个或多个记录,我希望结果用逗号和空格分隔。编写此T-SQL代码的最佳方法是什么?

例子:

1条记录的结果集:

Value1

2条记录的结果集:

Value1, Value2

3条记录的结果集:

Value1, Value2, Value3

问题答案:

这将为您提供以逗号分隔的列表中的值列表

create table #temp
(
    y int,
    x varchar(10)
)

insert into #temp values (1, 'value 1')
insert into #temp values (1, 'value 2')
insert into #temp values (1, 'value 3')
insert into #temp values (1, 'value 4')

DECLARE @listStr varchar(255)

SELECT @listStr = COALESCE(@listStr+', ', '') + x
FROM #temp
WHERE #temp.y = 1

SELECT @listStr as List

drop table #temp


 类似资料:
  • 问题内容: 我正在研究一个查询,它应该给我这样的结果: 但是我的选择得到了像这样的行集: 您建议使用哪种最佳方法将结果集转换为“即时”分组列中的逗号分隔值?我发现CROSS APPLY可以完成这项工作,但是人们说这种方法非常耗时。另外,DB具有大量数据。 在此先感谢,问候,阿德里安 问题答案: 这是最好的串联方法,它不会像其他XML方法一样扩展特殊字符: 输出:

  • 问题内容: 我需要运行类似的查询: 但是我希望子选择返回逗号分隔的列表,而不是数据列。这有可能吗?如果可以,怎么办? 问题答案: 您可以使用GROUP_CONCAT执行该操作,例如

  • 好吧,问题很简单,但我不知道怎么做。我试着逐个检查两个元素,但这不是最好的方法。我有一组圆形物体。数组有位置字段X和Y。我想遍历数组,检查所有元素是否在一条线上(水平或垂直)。我如何通过数组检查圆心是否在同一条线上。 我试着做这样的事情,看看圆圈是否在同一条垂直线上,但我说它需要一个元素与邻居。

  • 问题内容: 在两个不同的表之间使用逗号或联接有什么区别? 例如以下两个代码: 问题答案: 执行它们时并没有真正的区别,但是在工作中存在可读性,一致性和减轻错误的问题: 想象一下,如果您有4张桌子,如果使用老式的INNER JOIN方法,那么最终结果将是: 使用显式的INNER JOINS它将是: 后者显示了您在桌子前面的确切位置。它具有更高的可读性,并且更容易出错,因为与在WHERE中添加另一个A

  • 本文向大家介绍Docker Image标签以及如何使用它们,包括了Docker Image标签以及如何使用它们的使用技巧和注意事项,需要的朋友参考一下 泊坞窗映像标签是在构建映像以描述特定映像之前或之后为泊坞窗映像提供的简单标签或别名。它可以是项目或容器的版本,图像的功能,图像中使用的技术或几乎任何您想要的东西。它在整个软件开发生命周期中起着关键作用,因为它可以帮助您跟踪项目的不同部分,并可以帮助

  • 片段集recyclerView列号: 在此布局内容回收视图: 此处RecyclerView中得项目布局: 在左右两侧设置20dp 在2列之间设置10个dp