首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL选择字符左侧的所有内容

SQL选择字符左侧的所有内容
EN

Stack Overflow用户
提问于 2019-05-17 05:56:14
回答 2查看 1K关注 0票数 0

我需要选择字符串中连字符左侧的所有内容,但有些字符串有两个连字符,在这种情况下,我需要选择第二个连字符左侧的所有内容。

字符串永远不会有相同的长度,有些字符串根本没有连字符。

示例数据:

新闻递送

  • Co-Host-Television

-

  1. 管理器

预期结果:

  1. 管理器
  2. Co-Host
EN

回答 2

Stack Overflow用户

发布于 2019-05-17 11:19:28

删除从最后一个连字符开始的所有内容如何?

您可以使用stuff()来做到这一点

代码语言:javascript
复制
select stuff(str, len(str) - charindex('-', reverse(str)) + 1, len(str), '')
from (values ('Co-Host-Television'), ('Manager-News Delivery')) v(str);

或者更好的是,使用left()

代码语言:javascript
复制
select left(str, len(str) - charindex('-', reverse(str)) )
from (values ('Co-Host-Television'), ('Manager-News Delivery')) v(str);
票数 1
EN

Stack Overflow用户

发布于 2019-05-17 06:22:36

SQL实际上并不是用来处理字符串的,你应该用另一种语言来做这类工作(在客户端?也许)。但是,如果你真的真的想要这样做,而且数据很小,而且你不需要做很多事情,你可以使用以下代码:

代码语言:javascript
复制
select rtrim(reverse(substring(reverse('Manager-News Delivery'),
       charindex('-',reverse('Manager-News Delivery'))+1,99)))
select rtrim(reverse(substring(reverse('Co-Host-Television'),
       charindex('-',reverse('Co-Host-Television'))+1,99)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56177090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档