Como posso usar o Itrim/RTRIM para procurar e substituir espaços iniciais/finais?

estou a tentar limpar os espaços iniciais e finais de uma coluna NVARCAR(MAX) que está cheia de preços (usando NVARCAR devido à importação de dados de vários sistemas operativos com caracteres ímpares).

neste momento tenho um comando t-sql que pode remover os espaços iniciais/finais dos preços estáticos. No entanto, quando se trata de alavancar este mesmo comando para remover todos os preços, estou perplexo.

Aqui está o script estático que usei para remover um preço específico:

UPDATE *tablename* set *columnname* = LTRIM(RTRIM(2.50)) WHERE cost = '2.50 ';
Eis o que tentei remover todos os espaços finais:
UPDATE *tablename* set *columnname* LIKE LTRIM(RTRIM('[.]')) WHERE cost LIKE '[.] ';
Também tentei diferentes variações do % para personagens aleatórios, mas neste momento estou a girar as rodas.

o que espero conseguir é executar um comando simples que retire todos os espaços iniciais e finais em cada célula desta coluna sem modificar nenhum dos dados actuais da coluna.

Author: Techie Joe, 2013-05-08

6 answers

Para remover espaços da esquerda/direita, use Itrim / RTRIM. O que você tinha

UPDATE *tablename*
   SET *columnname* = LTRIM(RTRIM(*columnname*));

Teria funcionado em todas as linhas. Para minimizar atualizações se você não precisar atualizar, o código de atualização é inalterado, mas a expressão similar na cláusula onde teria sido

UPDATE [tablename]
   SET [columnname] = LTRIM(RTRIM([columnname]))
 WHERE 32 in (ASCII([columname]), ASCII(REVERSE([columname])));

Nota: 32 é o código ascii para o carácter espacial.

 9
Author: RichardTheKiwi, 2013-05-08 02:49:45

Para remover espaços... utilizar Itrim/rtrim Itrim (texto) RTRIM (texto) O parâmetro String que é passado para as funções pode ser um nome de coluna, uma variável, uma string literal ou a saída de uma função definida pelo usuário ou consulta escalar.

SELECT LTRIM(' spaces at start')
SELECT RTRIM(FirstName) FROM Customers

Leia mais: http://rockingshani.blogspot.com/p/sq.html#ixzz33SrLQ4Wi

 2
Author: techshaan, 2014-06-02 07:45:41

Função LTrim e função RTrim :

  • a função LTrim para remover os espaços iniciais e o RTrim função para remover os espaços finais de uma variável de texto.
  • Ele usa a função aparar para remover ambos os tipos de espaços .

                  select LTRIM(RTRIM(' SQL Server '))
    

    Resultado:

                             SQL Server
    
 1
Author: Laxmi, 2016-09-30 11:09:11
SELECT RTRIM(' Author ') AS Name;

A saída será sem quaisquer espaços finais.

Nome ------ Autor

 0
Author: Syamala Venkata Reddy, 2017-03-10 12:07:48

Eu entendo que esta pergunta é para o SQL server 2012, mas se o mesmo cenário para o SQL Server 2017 ou SQL Azure você pode usar o Trim diretamente como abaixo:

UPDATE *tablename*
   SET *columnname* = trim(*columnname*);
 0
Author: Kannan Kandasamy, 2017-08-05 16:22:06

A função LTrim para remover os espaços iniciais e a função RTrim para remover os espaços finais de uma variável de texto. Ele usa a função Trim para remover ambos os tipos de espaços e meios antes e depois de espaços de cadeia.

SELECCIONAR ITRIM(RTRIM (REVERSO ('PRÓXIMO NÍVEL EMPREGADO ')))

 -1
Author: Syamala Venkata Reddy, 2017-03-01 13:48:43