Minha coluna tem valores
1234|aaa4|8752
O comprimento desses valores não é fixo.
Quero extrair o segundo valoraaa4
Eu tentei escrever isso
SELECT SUBSTRING(column_name,CHARINDEX('|',column_name) + 1,
CHARINDEX('|',column_name, CHARINDEX('|',column_name)))
FROM [name].[name].[table_name]
Com esta referência
Tentando extrair um número entre 2 caracteres '|' MSSQL
Mas isso não está funcionando bem e também mostra texto após o segundo canal
aaa4|8752
É porque estamos usando substring e o terceiro argumento é do comprimento. Então está levando outros personagens também. Como faço para limitar o comprimento do segundo tubo?
CHARINDEX('|', column_name)
encontra a posição do primeiro tubo.CHARINDEX('|', column_name, CHARINDEX('|', column_name) + 1)
encontra a posição do segundo tubo, iniciando a busca após o primeiro tubo.