【发布时间】:2022-01-18 07:30:49
【问题描述】:
我正在尝试提取由特殊字符(如括号)包围的某些字符串值,并使用提取的字符串值创建新列。例如,原始列如下所示。
Column
Dec12 SKLEKF [[ABC]] <<JK>>
Jan13 KEJ [[FJ]] <<UHJ>>
FEB12 JKEJSKEJG [[GBC]] <<JUIDJ>>
我正在尝试使用括号内的字符串值创建两个新列。新数据表应如下所示。
Code ID
ABC JK
FJ UHJ
GBC JUIDJ
我尝试了以下代码,但它不起作用,因为括号之前和括号内的字符串值的长度因行而异。有什么方法可以解析括号括起来的字符串值,不管它们的长度如何?
select SUBSTRING(Column, 13, 3) AS Code
from table
谢谢。
【问题讨论】:
-
使用
charindex或patindex来确定子字符串的开始和结束。有很多人这样做的例子。 -
我投票赞成在 SQL Server 之外提取您想要的内容,然后导入一个干净的 CSV 文件。
标签: sql sql-server tsql