将 SQL 列转换为行

4
我可以帮您将一条记录的列拆分为多行。
如果我有以下SQL语句:
```sql SELECT id, name, age FROM my_table; ```
我想要将结果按照年龄(age)列进行拆分,变成多行,每行只包含一个年龄。
SELECT 1,2,3

结果:

1 | 2 | 3

我该如何将其转换为以下结果?
1
2
3

我目前正在使用 MS SQL 2008。


3
这真的是你想要做的吗?如果不是,你应该发布一些更现实的内容。 - APC
你可能想要查看UNPIVOT - Nikola Markovinović
2个回答

3
SELECT 1
UNION
SELECT 2
UNION
SELECT 3

有没有不修改原始SELECT语句的方法来实现它?例如:SELECT converttorow(SELECT 1,2,3) - ChrisCrous
1
@ChrisCrous:你可以创建一个函数或存储过程,在其中只需传递这些逗号分隔的值,然后在那里放置你的T-SQL逻辑以生成这样的输出。 - Niranjan Singh
1
请查看以下与将逗号分隔的值转换为行有关的编程内容:将逗号分隔的字符串转换为行,以及使用Oracle 将逗号分隔的字符串转换为行。还有这个这个。以及这个 - Niranjan Singh

0
总结以上评论:
  • 如果您想将列转换为行,您需要使用 T-SQL 的 UNPIVOT 子句。

    如果您想拆分包含逗号分隔值的单个列,则需要创建一个函数(此处有示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接