sql - 将表的行扩展/拆分为更多行

标签 sql sql-server t-sql sql-server-2012

我需要创建一个只有一个列的表值函数,它将表中的多值数据作为单个值返回

例如,这是我的表:

enter image description here

并且,这就是表值函数将返回的内容:

enter image description here

我已经读过这篇文章,但它 seems不必要的复杂。

最佳答案

但是,您可以在不使用 Function 的情况下实现上述目标,您可以使用 XML 方法:

SELECT split.a.value('.', 'VARCHAR(MAX)') [TestCol]
FROM
(
    SELECT CAST('<M>'+REPLACE([TestCol], '#', '</M><M>')+'</M>' AS XML) AS String
    FROM [Table]
) A
CROSS APPLY String.nodes('/M') AS split(a);

关于sql - 将表的行扩展/拆分为更多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096427/

相关文章:

sql - 是否可以为 "Get largest 2"编写具有 O(n) 运行时复杂度的 T-SQL 查询?

sql - 删除oracle结果列之间的差距

sql - SQL Server sysschedules 间隔是如何计算的?

sql-server - SQL Server Management Studio 中的错误 : Package 'Microsoft SQL Management Studio Package' failed to load.

sql-server - 删除 SQL 表中的树节点

sql - 如何使用 T-SQL 数据透视表反转行和列

mysql从每组中选择2行

php - 如何在使用 PHP SQLSRV_QUERY 时忽略 T-SQL 打印语句

sql - 从表中删除列在另一个表中不存在的行

sql - TSQL 多列索引