【发布时间】:2020-03-11 00:25:53
【问题描述】:
阅读here提出的问题,但我的问题有点复杂。
我有一个长度可变的字符串,分隔符有时可以是两个破折号,有时也可以只有一个。假设在我的表中,我想要分解的数据存储在一个单独的列中,如下所示:
+ -----------------------------------------+
| Category |
+------------------------------------------+
| Zoo - Animals - Lions |
| Zoo - Personnel |
| Zoo - Operating Costs - Power / Cooling |
+------------------------------------------+
但我想将该单列中的数据字符串输出到三个单独的列中,如下所示:
+----------+--------------------+-----------------+
| Location | Category | Sub-Category |
+----------+--------------------+-----------------+
| Zoo | Animals | Lions |
| Zoo | Personnel | |
| Zoo | Operating Costs | Power / Cooling |
+----------+--------------------+-----------------+
希望得到一些指导,因为我在 Google 上找到的示例似乎比这更简单。
【问题讨论】:
-
位置 - 类别 - 子类别总是顺序吗?
-
以哪种语言输出它们?
-
@squillman 是的,它将始终按此顺序排列。总会有一个位置和类别,但子类别是可选的,因此有时可以为 NULL。此外,“动物园”只是地点的一个例子;位置可以是可变长度,最多 255 个字符。与类别和子类别相同。
-
@JQSOFT 是SQL查询的结果,表中的列名是Category。
-
您的数据库在什么兼容级别下运行?
标签: sql-server string tsql sql-server-2017