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

多列的SQL逗号分隔列表

邵博艺
2023-03-14
问题内容

我有看起来像这样的数据:

CUSTOMER_ID  OPERDAYSJUL  OPERDAYSAUG  OPERDAYSSEP ... OPERDAYSJUN
1            30           15           2
2            5            1            0
3            6            0            12
4            12           5            23

对于每个customer_id,我需要用逗号分隔的列表,以指示该客户运营的月份:

CUSTOMER_ID  OPERATING_MONTHS
1            Jul, Aug, Sep
2            Jul, Aug
3            Jul, Sep
4            Jul, Aug, Sep

等等。如何使用SQL Server 2005 SQL(而不是T-SQL)轻松生成此逗号分隔的列表?

我在Stack Overflow和其他地方在这里看到的大多数解决方案似乎都是基于联接多个行值而不是列值来创建逗号分隔的列表:

  • T-SQL
  • FOR XML路径(’‘)
  • 关联的子查询与REPLACE / STUFF / SUBSTRING组合

我缺少明显的东西吗?在此先感谢您的帮助或指向适当的现有解决方案。


问题答案:

你可以做这样的事情。

CONCAT(CASE OPERDAYSJUL > 0 THEN "Jul," ELSE "" END,CASE OPERDAYSAUG > 0 THEN "Aug" ELSE "" END ... )


 类似资料:
  • 问题内容: 我有一个未标准化的表,其中的列包含逗号分隔的列表,该列表是另一个表的外键: 我想将此数据读入不提供过程语言的搜索引擎中。 那么,有没有一种方法, 要么 就这一栏中加入 或 该数据运行查询插入相应的条目到一个新的表?结果数据应如下所示: 如果DBMS支持返回表的函数,但MySQL显然不支持,我可以想到一个解决方案。 问题答案: 在MySQL中,可以通过以下方式实现 现在要获取逗号分隔的v

  • 我有一个包含N个字段的数据框,如下所述。列的数量和值的长度将有所不同。 输入表: 我必须用一个序列列将其转换为以下格式。 预期输出表: 我尝试过使用explode,但explode一次只能使用一个数组。 有人知道我怎么做吗?谢谢你的帮助。

  • 问题内容: 这是我的表结构: 我需要拆分该列,并希望通过一个简单的sql查询来做到这一点,因为我不知道如何使用函数,并且希望将其保持简单。 这是我已经发现的: 但这仅输出 有没有一种方法来拆分一切从到,,等? 提前致谢。 问题答案:

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

  • 问题内容: 我正在尝试输出以逗号分隔的链接列表,这是我的解决方案。 我只是想知道是否有更好,更干净的方法来实现这一目标? 谢谢 问题答案: 在可汗学院,我们使用一个为此而需要的帮助器: 它允许您编写如下代码:

  • 问题内容: 我正在编写一段代码,该代码应该输出用逗号分隔的项目列表。该列表是通过for循环生成的。我用 问题是我不知道如何摆脱列表中最后一个条目添加的最后一个逗号。它输出以下内容: 如何删除结尾的’,’? 问题答案: 传递给 您几乎可以使用print语句。 不需要循环,print具有以及参数。 一点解释 所述内置需要作为要打印参数中的任何数量的项目。将打印所有非关键字参数,并用分隔。的默认值为单个