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

CHARINDEX研究
EN

Stack Overflow用户
提问于 2018-09-05 14:14:45
回答 2查看 654关注 0票数 0

我有一个列,包含由'/‘分隔的两个级联数据,我只想得到与另一个表的一个列相等的'/’之前的内容,所以我尝试在CHARINDEX中使用SUBSTRING,但是我认为我做错了什么,按照代码。

代码语言:javascript
复制
SELECT TOP 1 * FROM arquivo A, tabela_geral B (NOLOCK), campo_concatenado C (NOLOCK)
WHERE A.primeira_parte = SUBSTRING(C.concatenado, 1, CHARINDEX('/', C.concatenado) -1)
AND B.status = 0
AND B.campo = '13'
AND B.numero NOT IN (6, 78, 79, 80, 81, 82, 83, 91)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-05 14:44:03

您应该处理没有“/”的行

如果您考虑像以前那样的值'/‘

代码语言:javascript
复制
SELECT TOP 1 * FROM arquivo A, tabela_geral B (NOLOCK), campo_concatenado C (NOLOCK)
WHERE A.primeira_parte = COALESCE(SUBSTRING(C.concatenado, 1, NULLIF(CHARINDEX('/', C.concatenado), 0) -1), C.concatenado)
AND B.status = 0
AND B.campo = '13'
AND B.numero NOT IN (6, 78, 79, 80, 81, 82, 83, 91)

如果您考虑像“/”之后的值

代码语言:javascript
复制
SELECT TOP 1 * FROM arquivo A, tabela_geral B (NOLOCK), campo_concatenado C (NOLOCK)
WHERE A.primeira_parte = SUBSTRING(C.concatenado, 1, NULLIF(CHARINDEX('/', C.concatenado), 0) -1)
AND B.status = 0
AND B.campo = '13'
AND B.numero NOT IN (6, 78, 79, 80, 81, 82, 83, 91)

我强烈建议你注意肖恩·兰格的评论

票数 1
EN

Stack Overflow用户

发布于 2018-09-05 14:23:53

你试过这个吗?

代码语言:javascript
复制
 SELECT TOP 1 * FROM arquivo A, tabela_geral B (NOLOCK), campo_concatenado C (NOLOCK)
  WHERE A.primeira_parte = "%/"
  AND B.status = 0
  AND B.campo = '13'
  AND B.numero NOT IN (6, 78, 79, 80, 81, 82, 83, 91)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52187303

复制
相关文章

相似问题

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