【问题标题】:How to extract a string from string [duplicate]如何从字符串中提取字符串[重复]
【发布时间】:2017-09-24 03:05:44
【问题描述】:

我需要从字符串中提取一个字符串,我使用一个表格并且它有动态字符串不断更新,我想提取最后一个字符串。

我尝试使用CHARINDEX、PATINDEX、SUBSTRING,但字符串的长度不固定。可能唯一的选择是识别数字,然后提取下一个字符串。有人有建议吗?

Hector Maya           Supervisión  4  Coecillo
Bulmaro Vieyra        Supervisión  1  Coecillo
Bulmaro Vieyra        Supervisión  1  Coecillo
Edgar Salgado         Supervisión  2  Coecillo
José A Castillo       Supervisión  5  Coecillo
Bulmaro Vieyra        Supervisión  1  Coecillo
Marco Martin Ortiz H. Supervisión  3  Oriente León
Arturo Salazar L.     Supervisión  2  Oriente León
Nancy Pérez G.        Supervisión  4  Oriente León
Arturo Salazar L.     Supervisión  2  Oriente León

我想要的最后一句话:

“Coecillo”、“Oriente León”等

【问题讨论】:

  • 你的 rdbms 是什么? sql server,postgres?
  • 你给定的例子没有明确的输出!
  • 它们是用制表符分隔的吗?只需反转字符串,找到第一个(未反转字符串中的最后一个)选项卡,获取其位置,取消反转字符串并在其位置之后获取所有内容
  • 感谢回答!是 SQL Server 2008。
  • 仅由制表符分隔。

标签: sql sql-server-2008


【解决方案1】:

使用patindex() 和reverse() 将字符串的right() 部分放在最后一个数字之后。

select LastPart = ltrim(rtrim(right(col,patindex('%[0-9]%',reverse(col))-1)))
from t

rextester 演示:http://rextester.com/TLE45990

返回:

+--------------+
|   LastPart   |
+--------------+
| Coecillo     |
| Coecillo     |
| Coecillo     |
| Coecillo     |
| Coecillo     |
| Coecillo     |
| Oriente León |
| Oriente León |
| Oriente León |
| Oriente León |
+--------------+

【讨论】:

  • 你好,齐姆。前几天你给我看一个不同的rextester吗?没有保存链接。
  • @JuanCarlosOropeza dbfiddle.uk 例如dbfiddle.uk/…
  • 优秀!!!感谢任何人!这是解决方案!!!!
  • @Ric_hc 乐于助人!
猜你喜欢
  • 1970-01-01
  • 2018-06-11
  • 1970-01-01
  • 2016-11-05
  • 2012-03-03
  • 2017-12-30
  • 2019-06-17
  • 2018-12-14
  • 2015-11-04
相关资源
最近更新 更多