【发布时间】:2018-03-22 23:39:43
【问题描述】:
我想将data 列拆分为 3 个新列
- 最后一个
- 第一
- 发帖
数据的值带有空格或“,”逗号分隔。
data
ABC, RICK SEAN, MD
MES, AEL B, MD FACC
DAN, RK, MD
OHI, NIK, MD F
KA E SYME, PA-C
ALL MUD, SIM, MD
RINE EEMAN, FNP-C
ABC, PQR DIR
所需输出:
desc last first post
ABC, RICK SEAN, MD ABC RICK SEAN MD
MES, AEL B, MD FACC MES AEL B MD FACC
DAN, RK, MD DAN RK MD
OHI, NIK, MD F OHI NIK MD F
KA E SYME, PA-C KA E SYME PA-C
ALL MUD, SIM, MD ALL MUD SIM MD
RINE EEMAN, FNP-C RINE EEMAN FNP-C
ABC, PQR DIR ABC PQR DIR
检查第一行数据列有2个逗号,最后一行只有一个逗号。
这里创建的示例http://rextester.com/BEHUP42399
select left(data, charindex(',', data) -1) from TTT
它尝试了“姓氏”列,但为“KA E SYME”给出了错误的 o/p,即单逗号记录。 如果数据只有一个逗号,而逗号之前只有一个单词,则表示逗号之后有两个单词,那么结果将是。检查最后记录 ABVC。
eg. ABC, PQR DIR
【问题讨论】:
-
怎么会有人知道 E SYME 和 ALL MUD 不应该分开?这背后的原因是什么?
-
这个答案可能对你有帮助:stackoverflow.com/a/46595896/2225030
-
您最好在应用程序代码中执行此操作。 SQL 不是这项工作的正确工具
-
@Harshil E SYME 有一个逗号,所有 MUD 有两个逗号
标签: sql sql-server sql-server-2008 substring