【问题标题】:sql get a substring after a certain word in the stringsql获取字符串中某个单词后的子字符串
【发布时间】:2016-07-06 19:48:34
【问题描述】:

如何在字符串中的特定单词之后获取字符串的一部分? 例如:第 123 节第 123 节 我需要 Section 和 Block 之后的数字 123

【问题讨论】:

标签: sql-server


【解决方案1】:

首先,如果 123 在字符串中出现 TWICE,则在两件事之后你不能得到“数字”。 “数字”是指其中之一。

你不能从一个函数返回两个值。

除了这些明显的失误之外,我假设您想要字符串中第一次(如果存在)出现的模式之后的文本。

SUBSTR(columnName, LOCATE('123', columnName) + 3)

“+ 3”的原因是我们要开始搜索 '123' 开头之后的三个字符。更专业的程序员可能会这样编码:

SUBSTR(columnName, LOCATE('123', columnName) + LENGTH('123'))

(当 '123' 的长度很明显是 3 时,实际上并没有必要,但是如果您正在寻找,例如,马萨诸塞州,您可能希望指定 13,因为人们无法立即发现'马萨诸塞'。)

请记住,如果子字符串没有出现,这将失败。

【讨论】:

  • 我也不知道数字的长度或实际数字。我知道我需要两个单独的函数来找到每个数字,这很好,我只是不确定如何。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 2014-01-24
  • 1970-01-01
  • 2021-11-11
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多