【发布时间】:2019-08-14 16:15:25
【问题描述】:
我使用的是 SQL Server 2012,所以没有可用的字符串拆分功能。
假设我有一个名为 DISK_VOLUME 的表,其中只有一列 RESULT,目前有 4 行:
RESULT
----------------------------------------
P: 220825387008 959589646336 DADOS
I: 166207356928 959589646336 INDEXS
E: 636080054272 799165902848 LOG
C: 462246113280 999651536896
我想要的是一个按空格分割这些行的查询,显示 4 列,例如:
Caption | Space 1 | Space 2 | Volume Name
---------+--------------+----------------+--------------
P: | 220825387008 | 959589646336 | DADOS
I: | 166207356928 | 959589646336 | INDEXS
E: | 636080054272 | 799165902848 | LOG
C: | 462246113280 | 999651536896 |
但是无法控制字符串中空格的数量。它可以有
- 字空间字
- 字空间空间空间空间字
这意味着单独使用charindex(' ', ini_pos, ini_pos + 1) 是行不通的,因为我不能依赖在空格查找之后立即输入下一个单词。
所以基本上我正在寻找的是任何函数或命令组合,它们可以动态地用空格分割一行(递归函数、xml、IDK)。我所有的尝试都失败了。
【问题讨论】:
标签: sql sql-server split sql-server-2012 substring