Qual é a melhor maneira de remover todos os espaços de uma seqüência de caracteres no SQL Server 2008?
LTRIM(RTRIM(' a b '))
removeria todos os espaços à direita e à esquerda da string, mas também preciso remover o espaço no meio.
sql
sql-server
string
whitespace
trim
Ananth
fonte
fonte
Respostas:
Simplesmente substitua-o;
Editar: Apenas para esclarecer; é uma substituição global, não há necessidade
trim()
ou preocupação com vários espaços para umchar
ouvarchar
:Resultado
fonte
Eu usaria um REPLACE
SUBSTITUIR
fonte
Se for uma atualização em uma tabela, tudo o que você precisa fazer é executar essa atualização várias vezes até afetar 0 linhas.
fonte
REPLACE()
função :fonte
Referência retirada deste blog:
Primeiro, crie tabela e dados de amostra:
Script para SELECT string sem espaços extras:
Resultado:
fonte
100% trabalhando
Você pode usar
"column_name"
oucolumn_name
obrigado
Subroto
fonte
select replace(replace(replace(varcharColumn,char(13),''),char(10),''),' ','')
para remover todas as novas linhas e espaços de umavarchar
coluna. Se eu usasse '\ n' e '\ r' em vez de char (13) e char (10), não funcionaria.substituir o t-sql http://msdn.microsoft.com/en-us/library/ms186862.aspx
substituir (val, '', '')
fonte
Se houver vários espaços em branco em uma sequência, a substituição poderá não funcionar corretamente. Para isso, a seguinte função deve ser usada.
Exemplo:
Resultado:
fonte
Isso faz o truque de remover os espaços nas seqüências de caracteres:
fonte
Caso você precise TRIM espaços em todas as colunas, você pode usar este script para fazê-lo dinamicamente:
fonte
se você deseja remover espaços, - e outro texto da string, use o seguinte:
suponha que você tenha um número de celular em sua tabela como '718-378-4957' ou '7183784957' e deseje substituir e obter o número de celular e use o texto a seguir.
Resultado: - 7183784957
fonte
Apenas uma dica: no caso de você estar tendo problemas com a função de substituição, o tipo de dados pode estar definido como nchar (nesse caso, é um comprimento fixo e não funcionará).
fonte
Para completar todas as respostas acima, existem postagens adicionais no StackOverflow sobre como lidar com TODOS os caracteres de espaço em branco (consulte https://en.wikipedia.org/wiki/Whitespace_character para obter uma lista completa desses caracteres):
fonte
substituir (substituir (nome_da_coluna, CHAR (13), ''), CHAR (10), '')
fonte
isso é útil para mim:
.
fonte
Eu tive esse problema hoje e substituir / aparar fez o truque ... veja abaixo.
antes e depois :
fonte
LTRIM
&RTRIM
?Para remover os espaços em uma string esquerda e direita. Para remover o espaço em uso intermediário
Replace
.Você pode usar
RTRIM()
para remover espaços da direita eLTRIM()
para remover espaços da esquerda e, portanto, os espaços esquerdo e direito removidos da seguinte maneira:fonte
Sintaxe para substituir caracteres específicos:
Por exemplo, na cadeia "HelloReplaceThingsGoing" Substituir palavra é substituída por Como
fonte
Uma versão funcional (udf) que remove espaços, cr, lf, tabs ou configuráveis.
Resultado: '234asdfwefwef3x'
fonte
Por algum motivo, a substituição funciona apenas com uma cadeia de caracteres por vez. Eu tinha uma string como esta " Test MSP " e quero deixar apenas um espaço.
Eu usei a abordagem que @Farhan fez, mas com algumas modificações:
Então eu corro minha atualização assim
Então eu recebi este resultado: Test MSP
Postando aqui se, no caso de alguém precisar, como eu.
Em execução no: Microsoft SQL Server 2016 (SP2)
fonte
Verifique e experimente o script abaixo (unidade testada) -
fonte
Parece que todo mundo continua se referindo a uma única função REPLACE. Ou mesmo muitas chamadas de uma função REPLACE. Mas quando você tem uma saída dinâmica com um número desconhecido de espaços, ela não funciona. Qualquer pessoa que lide com esse problema regularmente sabe que REPLACE removerá apenas um único espaço, NÃO TODO, como deveria. E LTRIM e RTRIM parecem ter o mesmo problema. Deixe para a Microsoft. Aqui está um exemplo de saída que usa um loop WHILE para remover os valores ALL CHAR (32) (espaço).
Aqui está a saída do código acima:
Agora, para dar um passo adiante e utilizá-lo em uma instrução UPDATE ou SELECT, altere-o para um udf.
Em seguida, utilize a função em uma instrução SELECT ou INSERT:
fonte