SQL中如何将VARCHAR列的分号分隔值拆分为多行?
解决SQL拆分分号分隔日期为多行的问题
你之前的查询错误在于没有引用STRING_SPLIT返回的拆分后的值,依然选择原表的Column_1列,所以才会重复输出原行的完整内容。
正确的SQL语句应该是:
SELECT t.Person_ID, s.value AS Column_1 FROM YourTableName t -- 替换成你的实际表名 CROSS APPLY STRING_SPLIT(t.Column_1, ';') s WHERE t.Person_ID = 1;
说明:
STRING_SPLIT函数执行拆分后,会返回一个包含value列的结果集,这个列里就是拆分后的单个日期字符串。- 查询时需要选择
s.value作为新的Column_1,而不是原表的t.Column_1,这样才能得到拆分后的单行日期。
执行上述语句后,会得到预期结果:
| Person_ID | Column_1 |
|---|---|
| 1 | 01.02.2001 |
| 1 | 16.07.2003 |
| 1 | 25.08.2005 |
内容的提问来源于stack exchange,提问作者Jani
相关产品推荐
相关产品推荐

