sql - 如何从 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
这是行不通的。请帮忙。
解决方案
基于charindex()
,我假设您使用的是 SQL Server。您可以使用string_split()
:
select t.*, s.value
from t cross apply
string_split(t.val1, '-') s.value;
推荐阅读
- elasticsearch - 如何使用 FOSElasticaBundle 添加一些基于“自定义分数”的过滤器?
- javascript - 如何让你的机器人发送第二个参数
- python - 我如何使用python中的输入数据作为python中的参数
- c++ - GLSL将颜色数据从片段着色器发送到顶点着色器似乎总是等于0
- reactjs - React Native 中本地化为 LTR 时使用 RTL 方向
- postgresql - 使用 docker-compose 创建数据库
- video - 如何估计特定分辨率下视频的文件大小?
- c# - 如何通过单击按钮直接打开文件?
- android - 无法解决:zxing 库
- php - 使用 PHP 编辑另一个 PHP 脚本并定位给定方法