繁体   English   中英

用CHARINDEX进行订阅

[英]SUBSTRING WITH CHARINDEX

我有一列包含两个以'/'分隔的串联数据,我只想获取'/'之前等于另一个表的列的内容,因此我尝试将SUBSTRING与CHARINDEX一起使用,但我想做错了,请遵循代码。

翻译:奥拉,possuo UMA coluna阙contem的DOI dados concatenados separados POR嗯'/',奎罗pegar apenasØ阙ESTA底注DA '/'阙seja igual一个UMA coluna德UMA outra tabela,对ISSO我在这tentando utilizarØSUBSTRING COM CHARINDEX ,mas creio que estou fazendo algo de errado,segue ocódigo。

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)

你试过这个吗?

 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)

您应该处理没有'/'的行

如果您考虑“ /”之前的值

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)

如果您考虑类似'/'之后的值

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)

我强烈建议您注意Sean Lange的评论

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM