首页 > 解决方案 > 如何从 SQL 中具有重复字符的列值(字符串)中获取值?

问题描述

我想从具有重复字符“-”的字符串中的列值中提取值。例如:这是字符串VAL1 = ALPHABET-ABC-PQRST-DEFGH

对于提到的字符串,我试图在“连字符”之间获取值。

我能够得到的第一列:SUBSTRING(VAL1,0,CHARINDEX('-',VAL1) as Column1这是 ALPHABET

我怎样才能得到更多的值,比如 ABC、PQRST 和 DEFGH。我一直在尝试:

SUBSTRING(VAL1,CHARINDEX('-',VAL1)+1,PATINDEX('%-%',VAL1)) as Column2 这是行不通的。请帮忙。

标签: sqlsql-server

解决方案


基于charindex(),我假设您使用的是 SQL Server。您可以使用string_split()

select t.*, s.value
from t cross apply
     string_split(t.val1, '-') s.value;

推荐阅读