首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CHARINDEX和LEN

CHARINDEX和LEN
EN

Stack Overflow用户
提问于 2018-09-15 20:22:43
回答 2查看 1.2K关注 0票数 0

字符串anyname#name列中。

我需要忽略#

我试着使用LEFT (name, CHARINDEX ('#', name) - 1),但它没有工作,但是使用LEFT (name, LEN (name) - 1)正常工作。

CHARINDEXLEN都返回整数值

你能解释一下为什么我不能在- 1CHARINDEX一起使用,但是与LEN一起使用它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-15 20:37:06

  • LEFT (name,LEN(name) - 1)只会忽略最后的宪章。
  • LEFT (name, CHARINDEX('#', name) - 1)将找到#字符显示的位置号。

在您的例子中,我将使用replace函数来忽略# replace(name,'#','')

下面是#在最后几个宪章中没有显示的示例。

代码语言:javascript
复制
CREATE TABLE T(name varchar(50));

INSERT INTO T VALUES ('anyn#ame');

select LEFT (name, CHARINDEX ('#', name) - 1), 
       LEFT(name, LEN (name) - 1),
       replace(name,'#','')
from t

木琴

票数 0
EN

Stack Overflow用户

发布于 2018-09-15 20:28:52

虽然不是你想要的解释,但是为什么你不能像这样使用TRIM()

代码语言:javascript
复制
SELECT TRIM( '#' FROM  'anyname#') AS col
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52348556

复制
相关文章

相似问题

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