kameibr Postado Julho 6, 2011 Denunciar Share Postado Julho 6, 2011 Amigos.Estou com um problema.Preciso contar o número de vezes que aparece o número 160 nesta linha:0x1600006CA87A000000E000000000000016000092A1C8000000E0000000000000160000DB786B000000E00000000000001600001F4282000000E0000000000000160000945A3D000000E00000000000001600009BDE0C000000E000000000000016000028479F000000E00000000000001600001404E6000000E0000000000000Após contar o número 160, preciso que todos os numeros 160 sejam substituidos por FFF .alguém sabe como posso fazer isto?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Julho 6, 2011 Denunciar Share Postado Julho 6, 2011 Ira procurar onde tem H e trocará por Xupdate TABELA set LINHA = REPLACE(LINHA, 'H','X') where ID IN () conta quantos registros tem nessa linha o trecho "160" SELECT LINHA, COUNT(*) FROM TABELA WHERE LINHA LIKE '%160%' GROUP BY LINHAAbs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 6, 2011 Denunciar Share Postado Julho 6, 2011 Bom dia, O replace está correto para alterar a string, mas o agrupamento não informará quantos 160 aparecem na string. Você terá que fazer um loop para contar quantas vezes o 160 irá aparecer. Poderá utilizar o CHARINDEX do sql. Ele retorna a primeira ocorrência de caracter(es) em uma string. OBS.: o CHARINDEX retorna quando encontrar a primeira ocorrência. Aí q vem o loop para identificar as demais ocorrências, até a string terminar. Faça um contador para ir incrementando toda vez o a função encontrar o(s) caracter(es) desejado(s). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kameibr Postado Julho 6, 2011 Autor Denunciar Share Postado Julho 6, 2011 FUlvio.Dai como ficaria o script para isto?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 6, 2011 Denunciar Share Postado Julho 6, 2011 Boa tarde, No seu string há 8 ocorrências do 160. Alguns você não colocou em negrito. Segue script. Se não entender pode postar. Seleciona tudo e roda:DECLARE @String VARCHAR(1000) DECLARE @Contador INT SET @Contador = 0 SET @String = '0x1600006CA87A000000E000000000000016000092A1C8000000E0000000000000160000DB786B000000E00000000000001600001F4282000000E0000000000000160000945A3D000000E00000000000001600009BDE0C000000E 000000000000016000028479F000000E00000000000001600001404E6000000E0000000000000' while (SELECT CHARINDEX('160', @String)) > 0 BEGIN SET @Contador = @Contador + 1 SET @String = (SELECT RIGHT (@String, LEN(@String) - (CHARINDEX('160', @String))-2)) END SELECT @Contador Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
kameibr
Amigos.
Estou com um problema.
Preciso contar o número de vezes que aparece o número 160 nesta linha:
0x1600006CA87A000000E000000000000016000092A1C8000000E0000000000000160000DB786B000000E00000000000001600001F4282000000E0000000000000160000945A3D000000E00000000000001600009BDE0C000000E000000000000016000028479F000000E00000000000001600001404E6000000E0000000000000
Após contar o número 160, preciso que todos os numeros 160 sejam substituidos por FFF .
alguém sabe como posso fazer isto?
Abraços
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.