sql - SQL Server:在没有 CHARINDEX 的情况下提取中间字符
问题描述
首先,我CHARINDEX
在这里看到了结果,但它们似乎都不适用于我的情况。原因要么是a,CHARINDEX
不能帮助我,要么是b,我不明白它是如何CHARINDEX
工作的。话虽这么说,我想在这里问我的问题,希望我能就如何解决我的问题以及CHARINDEX
如果这恰好是这个问题的回答方式得到一些澄清。
我试图从中提取的变量具有不同的长度。然而,有两件事总是不变的。
- 字符串中的第 16 个字符总是有一个“/”
- 字符串中的最后一个字符始终为“0”或“1”
我要做的是从“/”和“0”或“1”之间提取名称。简而言之,我想砍掉每个字符串的前 16 个字符和最后一个字符。到目前为止,这就是我所拥有的:
SELECT
SUBSTRING([string_name], 17, LEN([string_name]) - 1) AS 'username'
FROM
[table_name]
我得到的结果最后仍然包含 0 OR 1 。我需要做的是以某种方式从字符串中删除该 0 。需要注意的是,“/”和“0”之间的字符数总是不同的。
当前结果:
gordon0
grant0
greg0
guy1
hanying0
期望的结果:
gordon
grant
greg
guy
hanying
这里的任何建议都会很棒。
如果您需要我提供任何其他信息,请告诉我。如果可能,希望保持使用SUBSTRING
,LEFT
或RIGHT
.
谢谢
解决方案
调整长度似乎可以解决您的问题:
SELECT SUBSTRING([string_name], 17, LEN([string_name])-17) AS username
FROM [table_name]
推荐阅读
- php - 自动插入新评论时如何在帖子表上的评论表引用上添加帖子的字段块
- jasper-reports - JasperReports 中的元素可以配置为向下浮动而不是向上浮动吗?
- python - 如何在执行其余功能之前让不和谐机器人检查用户角色?
- python - 熊猫 groupby 并获得两列
- django - Django Rest_Framework 奇怪的错误 can't import name SkippError
- aws-documentdb-mongoapi - 复合索引的多个字段不能是数组
- python - 如何让 jinja2 独特的过滤器工作。(不按文档中的描述工作)
- angular - Angular ChangeDetection 不适用于带有 ChangeDetectionStrategy.OnPush 的按钮禁用属性
- django - 可以将电子邮件字段用作django rest框架的查找字段吗
- maven - 与 maven surefire 并行运行特定模块的测试