Usuário com melhor resposta
Update Retirando parte do campo

Pergunta
-
Boa tarde, tudo bem?
Teria como fazer um UPDATE retirando parte de um campo, um exemplo bobo mas so para conseguir explicar. Quero tirar a primeira palavra, mas o tamanho vai variar em cada linha de dados.
Joao foi a praia
Joaquim foi ao mercado
No Update quero tirar o joao e o joaquim, ficando:
foi a praia
foi ao mercado
Tem como?
Obrigado!
Respostas
-
Olá Davi,
Você tem que encontrar um padrão nessas sentenças para conseguir fazer o que deseja. Por exemplo se for sempre uma palavra (podendo ser um nome) seguido de um espaço e depois tendo o restante da frase, você poderia fazer assim:
DECLARE @teste VARCHAR(MAX) = 'Joaquim foi ao mercado' SELECT SUBSTRING(@teste, CHARINDEX(' ', @teste)+1, LEN(@teste)-CHARINDEX(' ', @teste))
Aí claro, podes adaptar a utilização da substring dentro de um select se for o caso, por exemplo:
SELECT SUBSTRING(Tabela.Observacao, CHARINDEX(' ', Tabela.Observacao)+1, LEN(Tabela.Observacao)-CHARINDEX(' ', Tabela.Observacao)) FROM Tabela WHERE .....
Espero ter ajudado!
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco
- Editado André SeccoMVP quarta-feira, 14 de setembro de 2016 18:24
- Marcado como Resposta DaviSaba quarta-feira, 14 de setembro de 2016 19:07
Todas as Respostas
-
Olá Davi,
Você tem que encontrar um padrão nessas sentenças para conseguir fazer o que deseja. Por exemplo se for sempre uma palavra (podendo ser um nome) seguido de um espaço e depois tendo o restante da frase, você poderia fazer assim:
DECLARE @teste VARCHAR(MAX) = 'Joaquim foi ao mercado' SELECT SUBSTRING(@teste, CHARINDEX(' ', @teste)+1, LEN(@teste)-CHARINDEX(' ', @teste))
Aí claro, podes adaptar a utilização da substring dentro de um select se for o caso, por exemplo:
SELECT SUBSTRING(Tabela.Observacao, CHARINDEX(' ', Tabela.Observacao)+1, LEN(Tabela.Observacao)-CHARINDEX(' ', Tabela.Observacao)) FROM Tabela WHERE .....
Espero ter ajudado!
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco
- Editado André SeccoMVP quarta-feira, 14 de setembro de 2016 18:24
- Marcado como Resposta DaviSaba quarta-feira, 14 de setembro de 2016 19:07
-
-
-
Olá Davi,
A forma mais objetiva de se fazer isso que pretende é usando STUFF, copie e cole o código abaixo e veja se o resultado é o que procura. Se for, não esquece de marcar.
DECLARE @T TABLE ( Frase Varchar(100) );INSERT INTO @T
VALUES ('Joao foi a praia'),
('Joaquim foi ao mercado'),
('Quintana é a minha cidade'),
('Analista'),
('Programador'),
('Database SQL Server');UPDATE @T
SET Frase = STUFF(Frase,1,CHARINDEX(' ',Frase),'');SELECT * FROM @T- Sugerido como Resposta Zé Bill sábado, 17 de setembro de 2016 00:58