sql - SQL:从字符串中提取一个单词
问题描述
我有以下 SQL 语句,它在关键字“调度级别:”之后查找某个单词。
SELECT SUBSTRING(CadRemarks, CHARINDEX('dispatch level:', CadRemarks) + LEN('dispatch level:'), 6) as
data
from myTable
我想以某种方式升级此语句,以返回关键字“调度级别:”和我要查找的单词之后的任何内容之间的任何内容。所以它可以是另一个词、字符或空格。例如:
Dispatch level: XXXXX YYY
or
Dispatch level: XXXXX
Only return XXXXX
编辑
我正在尝试这个 SQL,但它也选择了我需要的单词之后的单词。
select left(tt.CadRemarks, charindex(' ', tt.CadRemarks+ ' ')) as data
from myTablet cross apply
( values (substring(CadRemarks, charindex('dispatch level:', CadRemarks) +
16, len(CadRemarks)))
) tt(CadRemarks)
where t.CadRemarks like '%dispatch level:%'
where 子句是让我限制记录,但我将不得不移动它并将整个事情作为 CASE 语句。但那是以后的事了......
也试过这个,但得到一个错误(无效的长度参数传递给左边......)
SELECT SUBSTRING(CadRemarks, CHARINDEX('dispatch level: ', CadRemarks) +
LEN('dispatch level: ') + 1,
CHARINDEX('', CadRemarks) - (CHARINDEX('dispatch level: ', CadRemarks) + 2 +
LEN('dispatch level: ')))
FROM myTable
解决方案
用于left()
进一步查找字符串:
select left(tt.CadRemarks, charindex(' ', tt.CadRemarks+ ' ')) as data
from table t cross apply
( values (substring(CadtRemarks, charindex('dispatch level:', CadRemarks) + 16, len(CadRemarks)))
) tt(CadRemarks);
推荐阅读
- docker - 在 Kubernetes 上运行 Spark 以访问 kerberized Hadoop 集群时,如何解决执行程序上的“未启用简单身份验证”错误?
- font-awesome-5 - 为什么有些 Font Awesome 图标不显示?
- mocha.js - 在 Axios 错误上关闭烦人的 mocha 日志
- php - 用下划线连接两个变量
- c++ - 如何使用 BSDS500 基准测试?
- c# - 如何找到 WACOM 平板电脑屏幕?
- android - 由于 Auth,应用程序和服务器的紧密耦合
- c++ - 分析内存以获得具有地块和时间的最大 RSS 时的不同结果
- excel - VBA脚本在列中搜索字符串并删除包含该字符串的整行?
- java - Spring Boot jpa 表层次结构