我有一列包含两个以'/'分隔的串联数据,我只想获得'/'之前等于另一个表的列的内容,因此我尝试将SUBSTRING与CHARINDEX一起使用,但是我想我做错了,请遵循代码。
翻译:Olá,possuo uma coluna que contem dois dados concatenados separados ' / ',que pegar apenas o queestáantes da' / 'que 乌干达的优等生,乌干达的塔拉 实用 SUBSTRING com CHARINDEX ,作者为mas creio que estou fazendo sego ocódigo的Algo de errado。
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)
答案 0 :(得分:1)
您尝试过吗?
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 :(得分:1)
您应该处理没有'/'的行
如果您考虑类似'/'之前的值
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的评论